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

Тонкости быстрой сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ разница между произведениями http://www.cyberforum.ru/cpp-beginners/thread384451.html
найти разницу между произведениями чисел натурального ряда от 1 до 10,что стоят на парных и непарных местах. -входные данные вводятся из клавиатуры -результат вывести на экран
C++ В квадратной матрице вычислить сумму элементов, расположенных на одной горизонтали Память под хранение матричных данных должна выделяться динамически в 2 этапа: выделение памяти для хранения указателей на строки, выделение памяти для хранения элементов каждой строки. Освобождение – аналогично, но в обратном порядке. Работа с динамической памятью – new, delete. _____________________________________________________________________________________________ В квадратной матрице... http://www.cyberforum.ru/cpp-beginners/thread384439.html
C++ Вывести папку другого уровня.
С помощью SetCurrentDirectory установлена текущая директория : Корень:\\Папка1\\Папка2 Нужно установить текущей Папку1. То есть, сначала текущая Папка2, затем надо сделать текущей Папку1.
C++ Функции
Помогите пожалуйста я очень прошу!!!?)))))))))))))))очень надо (((но обязательно комментариии!)))))) если можно(((и вопрос а в Visual Studio можно проверить как работает????вот само задание: а)создать программу построения графика y=sinx (с выводом на экран) б)Составить программу вычисления y=sinx в 10 любых точках
C++ Заменить все положительные1|отрицательные2 элементы целочисленного массива http://www.cyberforum.ru/cpp-beginners/thread384413.html
помогите пожалуйста решить задачу на Array: Заменить все положительные1|отрицательные2 элементы целочисленного массива размера 10 на значение минимального3|максимального4.
C++ Дана целочисленная матрица размера M x N. помогите решить задачу на матрицу... Дана целочисленная матрица размера M x N. Найти количество ее строк1|столбцов2, все элементы которых различны. подробнее

Показать сообщение отдельно
thick_int
Заблокирован

Тонкости быстрой сортировки - C++

16.11.2011, 05:50. Просмотров 1297. Ответов 18
Метки (Все метки)

Излазил кучу мест в сети. Нашел массу этих алгоритмов, но на поверку практически каждый не совсем работающий.
Представляется, что в этой сортировке есть какая-то тонкость, но какая вот?

Вот часть моего кода, осуществляющая патишинирование. Не могу понять правильно она рабботает или нет. По отдельности вроде правильно (ну в смысле, когда оформляется в виде отдельной функции: вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Функция должна разделять массив на два подмассива - левый и правый.
//В левом подмассиве должны содержаться все элементы массива, меньшие или равные partition.
//В правом подмассиве должны содержаться все элементы массива, большие partition.
// Функция возвращает индекс массива, который служит начальным элементом правого подмассива.
int section(double* array, int size, double partition)
{
    double* head = array;
    double* tail = array + size - 1;
    do 
    {
        while (head < tail && *head <= partition)
            ++head;
        while (tail > head && *tail > partition)
            --tail;
        if (head < tail)
        {
            double temp = *head;
            *head= *tail;
            *tail = temp;
        }
    } while (head < tail);
    return head - array;
}
Добавлено через 13 часов 5 минут
Самое забавное, это то,что практически все алгоритмы, которые предлагаются в качестве алгорита быстрой сортировки, легко опровергаются (то есть простенькие тестовые массивы не сортируются) путем замены индекса элемента массива, служащего раздеелителем исходного массива на два подассива.

Вообще складывается такое впечатление, что никто и никогда так и не написал этой быстрой сортировки, и существует она только в теории, а все остальное выдаетсяя за нее, но таковой на самом деле не является.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru