JavaScript计数排序算法

快乐打工仔 分类:实例代码

JavaScript计数排序算法属于前端实例代码,有关更多实例代码大家可以查看

本章节简单介绍一下计数排序的,下面是一段简单的代码实例,有兴趣的朋友可以自行分析一下,这里就不多介绍了,只是简单介绍一下实现原理,代码实例如下:

function countSort(arr,min,max){
  var i,z=0,count=[];
  for (i=min;i<=max;i++){
    count[i] = 0;
  }  
  for(i=0;i<arr.length;i++){
    count[arr[i]]++;
  }
   
  for(i=min;i<=max;i++){
    while(count[i]-- >0){
      arr[z++]=i;
    }
  }
  return arr;
}
var i,arr=[];
for(i=0;i<100;i++){  
  arr.push(Math.floor(Math.random()*(30)));
}
console.log(countSort(arr,0,140));

实现原理简单介绍:

(1).找出待排序的数组中最大和最小的元素。

(2).统计数组中每个值为i的元素出现的次数,存入数组Count_arr的第i项。

(3).对所有的计数累加(从Count_arr中的第一个元素开始,每一项和前一项相加)。

(4).反向遍历原数组:将每个元素i放在新数组的第Count_arr(i)项,每放一个元素就将Count_arr(i)减去1。

JavaScript计数排序算法,这样的场景在实际项目中还是用的比较多的,关于JavaScript计数排序算法就介绍到这了。

回复

我来回复
  • 暂无回复内容