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;iPS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。