Сортировка экстремумами

Придумал вот такой устойчивый алгоритм сортировки, сложность O(n^2).
Идея вот в чём: допустим, нам нужно отсортировать массив по возрастанию. Для этого мы находим его минимальный элемент, добавляем его в массив-результат, а самому минимальному элементу из исходного массива присваиваем плюс бесконечность либо удаляем его. Если необходимо сортировать по возрастанию, находим максимальный элемент и присваиваем минус бесконечность.

Псевдокод:

Код:

sort(arr) { result = []; цикл по arr по итератору i: j = индексМинЭлемента; result[i] = arr[j]; arr[j] = Infinity; возврат result;}

Пример реализации на javascript:

Код:

function sort(array) { var result = []; for (var i = 0; i < array.length; i++) { var min = array[0], n = 0; for (var j = 0; j < array.length; j++) if (array[j] < min) min = array[j], n = j; result.push(min); array[n] = Infinity; } return result;}

Баян или нет?

10.04.2011, 14:12

гостъ

да

10.04.2011, 15:17

Новичок

Жаль.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: