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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ разница между произведениями http://www.cyberforum.ru/cpp-beginners/thread384451.html
найти разницу между произведениями чисел натурального ряда от 1 до 10,что стоят на парных и непарных местах. -входные данные вводятся из клавиатуры -результат вывести на экран
C++ В квадратной матрице вычислить сумму элементов, расположенных на одной горизонтали Память под хранение матричных данных должна выделяться динамически в 2 этапа: выделение памяти для хранения указателей на строки, выделение памяти для хранения элементов каждой строки. Освобождение –... http://www.cyberforum.ru/cpp-beginners/thread384439.html
C++ Вывести папку другого уровня.
С помощью SetCurrentDirectory установлена текущая директория : Корень:\\Папка1\\Папка2 Нужно установить текущей Папку1. То есть, сначала текущая Папка2, затем надо сделать текущей Папку1.
C++ Функции
Помогите пожалуйста я очень прошу!!!?)))))))))))))))очень надо (((но обязательно комментариии!)))))) если можно(((и вопрос а в Visual Studio можно проверить как работает????вот само задание: ...
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, все элементы которых различны. подробнее

Показать сообщение отдельно
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.11.2011, 07:58
Цитата Сообщение от thick_int Посмотреть сообщение
Излазил кучу мест в сети. Нашел массу этих алгоритмов, но на поверку практически каждый не совсем работающий.
Найдите изъяны данного алгоритма:

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
void QuickSort (int *a, int l, int r)
{
            int i, j;
            int x, buf;
            i = l;
            j = r;
            x = a[(l+r)/2];
            do
            {
                while (a[i] < x)
                   i++;
                while (x < a[j])
                   j--;
                if (i <= j)
                {
                    buf = a[i];
                    a[i] = a[j];
                    a[j] = buf;
                    i++;
                    j--;
                }
            } while( i <= j);
            if (l < j) QuickSort (a, l, j);
            if (r > i) QuickSort (a, i, r);
}
для массива int a[N] вызов QuickSort(a, 0, N-1)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru