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

САМАЯ БЫСТРАЯ сортировка! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ структура http://www.cyberforum.ru/cpp-beginners/thread88376.html
дана структура отдела кадров и сотрудников в отделе, нужно к этой структуре дописать сортировку по стажу работы и вывод сотрудников пенсионного возраста #include <iostream.h> #include <windows.h>...
C++ Найти количество символов в строке Написать программу для подсчёта количества символов в любой строке http://www.cyberforum.ru/cpp-beginners/thread88369.html
произведение элементов в строках C++
В прямоугольном массиве N×M определите произведение элементов в тех строках, которые не содержат ни одного нулевого элемента.
C++ можно в консоле C++
Определить класс "Автомобиль", предусмотрев в нем компонентные данные: марка, цвет, серийный номер, регистрационный номер, год выпуска, цена. Предусмотреть функции для доступа к отдельным компонентам...
C++ написать прототип функции http://www.cyberforum.ru/cpp-beginners/thread88348.html
типа нужно написать сначала работу стандартной функции strrchr, а потом создать прототип этой функции который делает тоже самое. использовать динамически распределяемую память
C++ Масcивы Дана целочисленная прямоугольная матрица. Определить количество столбцов, Не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы называеться сумма ее полжительных... подробнее

Показать сообщение отдельно
HIMen
4150 / 1399 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
22.01.2010, 21:40
этот алгоритм уже давно придуман и называется он сортировка подсчетом
которая во-первых требует памяти O(MAX),
во-вторых нестабильна (ты хоть гуглил что значит устойчивая сортировка)
в-третьих она основана вовсе не на замене (капитан очевидность недоумевает, где там замена)

Что-то мне подсказывает ты проводил тесты на массивах типа
C#
1
2
Random rnd = new Random(DateTime.Now.Millisecond);
int[] msv = (new int[2000000]).Select(n => rnd.Next(0, 10)).ToArray();
А ты попробуй такой
C#
1
2
3
Random rnd = new Random(DateTime.Now.Millisecond);
int[] msv = (new int[2000000]).Select(n => rnd.Next(0, 10)).ToArray();
msv[4] = int.MaxValue;
или такой
C#
1
int[] msv = { 0, int.MaxValue };
Любой из алгоритмов быстрая/пирамидальная/слиянием или подобный будет гораздо быстрее, а т.к твоя реализация еще и криворукая ты получишь либо StackOverflow либо OutOfMemory

Даже хорошая реализация (которая стабильна) не делает эту сортировку достойной: она сортирует только дискретные величины

Не по теме:

Надеюсь код на c# тебе понятен



Добавлено через 4 минуты
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Ну вообще-то может сортировать все что угодно - классы, структуры и т. д.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.