介绍
这篇文章将为大家详细讲解有关JS如何实现的计数排序与基数排序算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
JS是什么
JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。
<强>计数排序强>
计数排序就是简单的桶排序,一个桶代表数组中一个数出现的个数,所以需要一个和数组数字范围一样大的辅助数组,一般用在范围小于100的排序,时间复杂度为O (n),空间复杂度为数组的数字范围。
/* * ,*范围在,start 作用;最终获得之间的排序 ,*计数排序需要辅助数组,该辅助数组的长度是待排序数组的范围,所以一般用作范围小于100的排序 ,*/function countSort(加勒比海盗,开始,结束),{ var 才能;len =, arr.length;//才能,桶数组 var 才能;suportArr =, new 数组(最终获得成功;start +, 1);//才能,结果数组 var 才能;resArr =, new 数组(len);//才能,初始化桶数组 for 才能;(小姐:=,0;,小姐:& lt;, suportArr.length;,我+ +),{ ,,,suportArr[我],=,0; ,,}//才能,待排序数组中的数组出现,在桶子对应位置+ 1代表这个数出现的个数+ 1了 for 才能;(let 小姐:=,0;,小姐:& lt;, len;,我+ +),{ ,,,suportArr arr[[我]]+ +; ,,}//,,,从第1项开始,桶数组加上前一个桶的个数,现在辅助数组的意义变成了每一项的排名了。 for 才能;(let 小姐:=,1;,小姐:& lt;, suportArr.length;,我+ +),{ ,,,suportArr[我],+=,suportArr[小姐,安康;1]; ,,}//才能,根据辅助数组的排名,从后往前赋值 for 才能;(let 小姐:=,len 作用;1;,小姐:祝辞=,0;,我——),{ ,,,resArr [suportArr arr[[我]],安康;1],=,arr[我]; ,,,suportArr [arr[我]]——; ,,} return 才能;resArr; }
<>强基数排序强>
基数排序是多躺的桶排序
var radix =, 16,,//,基数,可以为任何数,越大趟数越小,但是桶数越多,最好根据最大数字进行定义。 arr function _roundSort(,,,,基数),{ var 才能;buckets =, new 数组(基数); for 才能;(let 小姐:=,0;,小姐:& lt;,基数;,我+ +),{ ,,,桶[我],=,[]; ,,}//,才能将数组中的数放进对应的桶子中 for 才能;(let 小姐:=,0;,小姐:& lt;, arr.length;,我+ +),{ ,,,let remainder =, Math.floor (arr[我],/,(radix * *, (round 作用;1))),%,基数; ,,,桶(剩余).push (arr[我]); ,,}//,才能将数组重新根据桶子进行排序 var 才能;index =, 0; for 才能;(let 小姐:=,0;,小姐:& lt;, buckets.length;,我+ +),{ ,,,for (let j =, 0;, j & lt;,桶[我]. length;, j + +), { ,,,,,arr(指数+ +),=,桶[我][j]; ,,,} ,,} } function radixSort(加勒比海盗,圆),{ for 才能;(let 小姐:=,1;,小姐:& lt;=,轮;,我+ +),{ ,,,_roundSort(加勒比海盗,,我,,基数); ,,} return 才能,加勒比海盗; } console.log (radixSort ([10、5、5、50、0155、4622、5、1, 4, 2154],, 4));
关于“JS如何实现的计数排序与基数排序算法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。