Форум программистов, компьютерный форум CyberForum.ru

Сравнение 2-х сортировок массива - C++

Восстановить пароль Регистрация
 
MAQSA
2 / 2 / 0
Регистрация: 18.04.2010
Сообщений: 119
29.05.2010, 17:20     Сравнение 2-х сортировок массива #1
Есть два метода сортировки массива Вставки и Пузырька. Как их сравнить, что бы узнать, который из них лучше сортирует. Если я не ошибаюсь, метод Пузырька не может быть лучшим за метод Вставки. По количеству перестановок он может тока равняться с методом Вставки, верно же? Вот код который есть у меня:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
void VSort(int a[], int size)
{
   int i, j, counter;
    int x;
    for(i=0;i<size;i++)
    {
        for(j=i+1;j<size;j++)
        {     if(a[i]>a[j])
            {
                x=a[i];
                a[i]=a[j];
                a[j]=x;
                         counter++;
            }
        }
    }
    cout<<"Количество перестановок = "<<counter<<endl;
    }
 
void bubbleSort(int a[], int size)
{
   int i, j, counter;
    int x;
    for(i=0;i<size;i++)
    {
        for(j=size-1;j>i;j--)
        {
            if(a[j-1]>a[j])
            {
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
                         counter++;
            }
        }
    }
cout<<"Количество перестановок = "<<counter<<endl;
}
void copy_arr( int *dst,int *src,int nSize ){
  memcpy( dst, src, sizeof( int ) * nSize );
}
 
void main()
{        clrscr();
        srand(time(NULL));
    const long SIZE=20;
    int ar[SIZE],as[SIZE];
    cout<<"SORT BUBLE"<<endl;
    for(int i=0;i<SIZE;i++)
    {
        ar[i]=rand()%100;
        cout<<ar[i]<<" ";
    }
    copy_arr(as,ar,SIZE);
    cout<<"\n\n";
    bubbleSort(ar,SIZE);
    for( i=0;i<SIZE;i++)
    {cout<<ar[i]<<" ";
    }
    cout<<"\n\n";
    cout<<"SORT VUBORY"<<endl;
    for(i=0;i<SIZE;i++)
    cout<<as[i]<<" ";
    cout<<"\n\n";
    VSort(as,SIZE);
    for( i=0;i<SIZE;i++)
    {сout<<as[i]<<" ";
    }
    cout<<"\n\n";   
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
29.05.2010, 17:25     Сравнение 2-х сортировок массива #2
MAQSA, можно, например, сравнить их время выполнения. Кто быстрее, тот лучше...
MAQSA
2 / 2 / 0
Регистрация: 18.04.2010
Сообщений: 119
29.05.2010, 22:02  [ТС]     Сравнение 2-х сортировок массива #3
Qwerty_coder, мне нужно именно по количеству перестановок

Добавлено через 2 часа 9 минут
Подскажите а)
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
29.05.2010, 22:05     Сравнение 2-х сортировок массива #4
MAQSA, разве мы уже не разбирали с Вами этот вопрос?
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
29.05.2010, 23:29     Сравнение 2-х сортировок массива #5
Цитата Сообщение от MAQSA Посмотреть сообщение
по количеству перестановок
количество перестановок зависит от того как стоят числа в массиве, в принципе перестановок может быть и одна, есл цифры стоят в правильном направлении, а может быть и 100, угадать нельзя
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
29.05.2010, 23:31     Сравнение 2-х сортировок массива #6
Цитата Сообщение от Crudelis Посмотреть сообщение
количество перестановок зависит от того как стоят числа в массиве, в принципе перестановок может быть и одна, есл цифры стоят в правильном направлении, а может быть и 100, угадать нельзя
на то и существует теория сложности. ну а в этом случае я думаю метод анализа будет статистическим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 23:46     Сравнение 2-х сортировок массива
Еще ссылки по теме:

C++ Сравнение сортировок
C++ Как вывести два массива разных сортировок?
Одномерные массивы: задачи сортировок элементов массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MAQSA
2 / 2 / 0
Регистрация: 18.04.2010
Сообщений: 119
29.05.2010, 23:46  [ТС]     Сравнение 2-х сортировок массива #7
fasked, а разве можно делать в сортировке, возвращать счетчик?. У меня показывает сколько раз, какой метод сортировки сделал перестановку, а вот сравнить их не как не выходит.

Добавлено через 36 секунд
Скажи, метод Вставки может = методу Пузырька по кол-ву перестановок?
Yandex
Объявления
29.05.2010, 23:46     Сравнение 2-х сортировок массива
Ответ Создать тему
Опции темы

Текущее время: 06:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru