计数排序
程序员文章站
2022-03-24 13:49:10
...
// 20个随机整数,取值范围0~10,
//实现从小到大排序
/**
*设置长度为11(0~10)的数组,数组下标即为(0~10)全部置0,
*遍历随机数组,统计0~10出现次数,每出现一次,对应下标位置值加1,
* 然后遍历生成的数组,输出对应下标值,
* 其位置对应数字为多少就输出多少次
*/
function f(arr){
var x = [];
var result = [];
for(let i=0;i<11;i++){
x.push(0);
}
// console.log(x);
for(let i=0;i<arr.length;i++){
x[arr[i]]++;
}
for(let i=0;i<11;i++){
for(let j=0;j<x[i];j++){
result.push(i);
}
}
return result;
}
// 快排:
// function f(arr){
// if(arr.length == 0){
// return [];
// }
// var base = arr[0];
// var left = [];
// var right = [];
// for(var i=1;i<arr.length;i++){
// if((arr[i])<base){
// left.push(arr[i])
// }else{
// right.push(arr[i])
// }
// }
// return f(left).concat(base,f(right))
// }
var arr = [1,2,5,8,4,6,2,7,3,1,9];
console.log(f(arr))