js算法:计数算法 counting sort

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

// 计数排序 count sort

/**
 *	使用count sort基本原理
 *	
 *  已知要排序的数字在一个区间中(如 0..k),这样我们就可以计算出来 A[0...n]中的某一项A[i]有多少个数小于它,进而得知它应该
 *  放到排好序数组的第多少个位置 A[2,3,5,4,8,7,6,9,1,0] 如A[7] = 9 因为比9小的数字有9个,
 *  所以我们知道9应该放到排好序的数组B[0..9]的第9个位置
 */

 'use strict';

 /**
  *	arr是原数组, sortedArr排好序数组, k待排序数字的最大范围
  */
 function countSort(arr, sortedArr, k) {
    let tmpArr = [];
    //初始化tmpArr值全为0,长度为k+1,因为有0
    for(var i=0; i<=k; i++) {
    	tmpArr[i] = 0;
    }

    //计算待排序的数组arr,每一项的数字出现的次数
    for(var j=0, jj=arr.length; j

转载于:https://my.oschina.net/wanglihui/blog/703172

你可能感兴趣的:(js算法:计数算法 counting sort)