Подсчет сортирования - это стабильный алгоритм сортировки. Count Sorting использует дополнительные массивы count_arr, где элемент I-Th представляет собой количество элементов со значением, равным I в ARR, чтобы отсортировать. Затем, согласно массиву count_arr, элементы в ARR расположены в правильную позицию.
Он разделен на четыре шага:
1. Найдите самые большие и самые маленькие элементы в массиве, которые будут сортированы
2. Статистика количество раз каждый элемент со значением I появляется в массиве и сохраняет I-й пункт массива count_arr
3.
4. обратно, пройти исходный массив: поместите каждый элемент I в элемент Count_arr (i) нового массива и вычитайте Count_arr (i) на 1 для каждого элемента.
Пример:
Кода -копия выглядит следующим образом:
/**
* Сортировка COUNT-это алгоритм сортировки, основанный на основе.
* Этот алгоритм был предложен Гарольдом Х. Сьюардом в 1954 году.
* Это преимущество в том, что при сортировке целых чисел в определенном диапазоне,
* Его сложность - (n+k) (где k - диапазон целых чисел),
* Быстрее, чем любой алгоритм сортировки сравнения.
*
*/
Функциональный счет (arr, min, max) {
var i, z = 0, count = [];
для (i = min; i <= max; i ++) {
count [i] = 0;
}
for (i = 0; i <arr.length; i ++) {
count [arr [i]] ++;
}
для (i = min; i <= max; i ++) {
while (count [i]-> 0) {
arr [z ++] = i;
}
}
вернуть Arr;
}
// тест
var i, arr = [];
for (i = 0; i <100; i ++) {
arr.push (math.floor (math.random () * (141)));
}
Countsort (Arr, 0, 140);