桶排序
题目:将a,b,c,d,e五个同学的分数(满分为10分) 从大到小排序
思想:
申请一个大小为11的数组a[11] ,初始化为0 (js不用刻意定义长度)
处理每个人的分数 例如第一个人的分数是五分,我们就将相对应的a[5]的值在原来的基础上加1
然后将其从后至前将不为0的数组项打印出来
代码:
function fn(a, b, c, d, e) {
let arr = [];
for (let i = 0; i < 11; i++) {
arr.push(0)
}
for (let i = 0; i < arguments.length; i++) {
let num = arguments[i]
arr[num]++;
}
for (let i = 10; i >= 0; i--) {
for (let j = 0; j < arr[i]; j++) {
if (arr[i] !== 0)
console.log(i);
}
}
}
缺点:非常浪费空间。。。