JS实现的计数排序与基数排序算法示例
本文实例讲述了JS实现的计数排序与基数排序算法。分享给大家供大家参考,具体如下:
计数排序
计数排序就是简单的桶排序,一个桶代表数组中一个数出现的个数,所以需要一个和数组数字范围一样大的辅助数组,一般用在范围小于100的排序,时间复杂度为O(n),空间复杂度为数组的数字范围。
/**
*范围在start-end之间的排序
*计数排序需要辅助数组,该辅助数组的长度是待排序数组的范围,所以一般用作范围小于100的排序
*/
functioncountSort(arr,start,end){
varlen=arr.length;
//桶数组
varsuportArr=newArray(end-start+1);
//结果数组
varresArr=newArray(len);
//初始化桶数组
for(i=0;i=0;i--){
resArr[suportArr[arr[i]]-1]=arr[i];
suportArr[arr[i]]--;
}
returnresArr;
}
基数排序
基数排序是多躺的桶排序
varradix=16;//基数,可以为任何数,越大趟数越小,但是桶数越多,最好根据最大数字进行定义。
function_roundSort(arr,round,radix){
varbuckets=newArray(radix);
for(leti=0;i
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。