计数排序(计数排序是稳定的排序算法),计数排序使用一个额外的数组,count_arr,那里我的元素是以数组arr,等于我在ARR的元素的元素个数然后放在正确的地方,根据阵列count_arr。
它分为四个步骤:
1。查找要排序的数组中最大和最小的元素。
2。一些与我各价值要素的统计数组和进入第一项的数组count_arr
三.所有重要的积累(从count_arr,第一单元与前一个加入每一项)
4。反原数组的每个元素遍历:我是放在count_arr(我)的新数组,每个元素减去count_arr(我)1

实例uff1a
复制代码代码如下所示:

*排序排序是一种基于非比较的排序算法。
*该算法于1954由Harold H. Seward提出。
*它的优势在于整数在一定范围内的排序,
可能是复杂度*(n + k)(其中k是整数范围),
*比任何比较排序算法都快。
*
* /

功能countsort(ARR,min,max){
var I,z = 0,计数= };

对于(i = min;i < max;i + +){
计数{ } = 0;
}

为(i = 0;i < arr.length;i++){
{我} } { ARR计数+ +;
}

对于(i = min;i < max;i + +){
当(计算{ } - > 0){
ARR { Z + } =我;
}
}
报酬;
}

测试

var i,ARR = { };

对于(i = 0;i < 100;i + +){
Arr.push(math.floor(Math.random()*(141))));
}

countsort(ARR,0, 140);