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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 132
#1

Правильно ли сделано. Быстрая сортировка - C++

20.10.2013, 23:52. Просмотров 306. Ответов 3
Метки нет (Все метки)

Всем добрый вечер. Собственно вопрос. Правильно ли будет так вести подсчет количества операций сортировки?
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
int nsort = 0;
void sort(int *mas, int i, int j)
{
    int c, x, m, k;
    m = i; k = j;
    c = mas[(m + k) / 2]; // центральный элемент
    do
    {
        nsort++;
        // процедура разделения
        while (mas[m] < c) {m++; nsort++;}
        while (mas[k] > c) {k--;  nsort++;}
        if (m <= k)
        {
            nsort++;
            x = mas[m];
            mas[m] = mas[k];
            mas[k] = x;
            m++;
            k--;
        }
    } while (m < k);
    // рекурсивные вызовы, если есть что сортировать
    if (i < k){
        sort(mas, i, k);
    }
    if (m < j) {
        sort(mas, m, j);
    }
}
Добавлено через 4 часа 12 минут
nsort - счетчик
не ужели ни кто не знает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2013, 23:52     Правильно ли сделано. Быстрая сортировка
Посмотрите здесь:

Правильно ли сделано задание - C++
Задание состоит в том что бы Определить является ли число k степенью 3. Не могли бы вы помочь объяснить в чем ошибка? # include...

Правильно ли сделано задание - C++
Нужно удалить максимальный элемент в массиве. Не могли бы вы помочь объяснить в чем ошибка? #include &lt;iostream.h&gt; #include &lt;conio.h&gt; ...

Быстрая сортировка - C++
Смотрел в тему посвященной быстрой сортировке, и не совсем понял. написал подобный код. Хотелось бы наиболее подробных комментариев, за...

Быстрая сортировка - C++
Здравствуйте. Ребята, очень нужна помощь. Есть функция быстрой сортировки, ей надо упорядочить массив из рандомных чисел - строки по...

Быстрая сортировка - C++
Суть задания состоит в сортировке структуры по второму параметру. Сделал пузырьковым методом: #include &lt;iostream&gt; #include &lt;conio.h&gt;...

Быстрая сортировка Хоара - C++
Быстрая сортировка Хоара (QSort) разбивает массив в ходе сортировки до тех пор, пока размер частичного подмассива не станет равен...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gng
637 / 483 / 132
Регистрация: 08.09.2013
Сообщений: 1,290
21.10.2013, 09:12     Правильно ли сделано. Быстрая сортировка #2
Если под операцией сортировки понимать перестановку элементов, то, очевидно, нет.
Ваша программа уже для массива {1,2} выдаст одну операцию, а для {2,1} - целых две.
Достаточно оставить один nsort++; внитри if
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 132
21.10.2013, 10:08  [ТС]     Правильно ли сделано. Быстрая сортировка #3
Колво. операций для массива {1,2} - 3
Для {2,1} - 2
Что-то здесь не так

Нужно "вычислить количество произведенных сравнений между элементами массива".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2013, 11:01     Правильно ли сделано. Быстрая сортировка
Еще ссылки по теме:

Быстрая сортировка. Алгоритм - C++
На С++ Подскажите, пожалуйста, алгоритм быстрой сортировки БЕЗ шаблонов функций и самих функций. Желательно в псевдокоде. Заранее...

Двоичная быстрая сортировка - C++
всем здарасте) В общем мне задали курсовую работу написать на С++, тема очень странная &quot;Двоичная быстрая сортировка&quot;((((.... Я пошустрил...

Существует ли быстрая сортировка - C++
быстрая сортировка есть????

Быстрая сортировка массива - C++
Программа сортирует числа в valarray с помощью быстрой сортировки, но не все элементы. Помогите исправить код так, чтоб сортировались все...


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

Или воспользуйтесь поиском по форуму:
gng
637 / 483 / 132
Регистрация: 08.09.2013
Сообщений: 1,290
21.10.2013, 11:01     Правильно ли сделано. Быстрая сортировка #4
Цитата Сообщение от Fareiro Посмотреть сообщение
Нужно "вычислить количество произведенных сравнений между элементами массива"
Тогда при каждом сравнении элементов приплюсовываете единицу к счетчику. Сравнения элементов массива у вас только в двух идущих подряд while.
Для каждого while количество сравнений = количесво проходов цикла + 1.
Yandex
Объявления
21.10.2013, 11:01     Правильно ли сделано. Быстрая сортировка
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru