Я ищу эффективный способ сортировки массива двойников. Я знаю сортировку сортов и сортировку пузырьков, ни одна из них не кажется достаточно быстрой. Я читал о быстрой сортировке, но я не понимаю, как это работает. Существует множество примеров исходных кодов, но все они плохо комментируются. Может кто-нибудь объяснить это мне?Как эффективно сортировать массив двойников без библиотек?
-4
A
ответ
1
Я написал это после того, как понял, как работает qsort. Я действительно думаю, что qsort не так-то просто понять. Это, вероятно, нуждается в некоторой оптимизации, и, вероятно, нет, где по сравнению с оригинальным qsort, но вот оно. Спасибо за пепел, который пытался помочь с этим.
/*recursive sorting, throws smaller values to left,
bigger to right side, than recursively sorts the two sides.*/
void sort(double szam[], int eleje, int vege){
if (vege > eleje + 1){ //if I have at least two numbers
double kuszob = szam[eleje]; //compare values to this.
int l = eleje + 1; //biggest index that is on the left.
int r = vege; //smallest index that is on the right side.
while (l < r){ //if I haven't processed everything.
if (szam[l] <= kuszob) l++; //good, this remains on the left.
else
swap(&szam[l], &szam[--r]); //swap it with the farthest value we haven't checked.
}
swap(&szam[--l], &szam[eleje]); //make sure we don't compare to this again, that could cause STACK OVERFLOW
sort(szam, eleje, l); //sort left side
sort(szam, r, vege); //sort right side
}
return; //if I have 1 number break recursion.
}
Смежные вопросы
- 1. Как сортировать целочисленный массив эффективно
- 2. Как эффективно сортировать один массив другой
- 3. Как эффективно сортировать массив упорядоченных последовательностей
- 4. Как эффективно * почти * сортировать список?
- 5. Как эффективно сортировать миллион элементов?
- 6. РЕАЛ сортировать массив без петли
- 7. Как эффективно сортировать массив для использования нескольких процессоров?
- 8. Как эффективно сортировать массив объектов в обратном порядке?
- 9. Как сортировать массив без учета регистра?
- 10. Массив двойников и кучи коррупции
- 11. Как написать массив двойников в файл?
- 12. Как эффективно вращать массив?
- 13. Как сортировать 2D-массив?
- 14. как сортировать массив строк
- 15. как сортировать массив NSDictionary
- 16. Как сортировать строковый массив
- 17. Как эффективно сортировать по значению в PySpark?
- 18. SQL: Как эффективно сортировать перекрывающиеся группы
- 19. Как эффективно сортировать четверные структуры в C++?
- 20. Как эффективно сортировать рекурсивно определенный стек?
- 21. Как эффективно искать массив JSON
- 22. PHP сортировать массив массив
- 23. Как сортировать результат запроса массив
- 24. эффективно сортировать столбец двумерного массива в C
- 25. C# Добавить список двойников в массив строк
- 26. Выведение массив двойников в файл на жестком диске
- 27. Возвращение 2-мерный массив двойников из функции
- 28. Динамически выделяется 2d массив двойников из файла
- 29. Массив двойников из двух массивов строк
- 30. статический константный массив статических константных массивов двойников
Вы уже изучили бинарные деревья? – CookieOfFortune
"* Может кто-нибудь, пожалуйста, покажет реализацию *« Это не очень хорошее использование переполнения стека ** или ** домашнее задание. –
Сортировка и сортировка пузырьков - это алгоритмы 'O (n^2)' примерно так же медленны, как сортировка может (разумно) быть. Существует множество гораздо более быстрых алгоритмов O (n log (n)) '; [Википедия] (http://en.wikipedia.org/wiki/Sorting_algorithm) является хорошей отправной точкой для ваших исследований. [Merge sort] (http://en.wikipedia.org/wiki/Merge_sort) - популярный выбор. –