【C022069】请用JavaScript语言实现 sort 排序函数,要求:sort([5, 100, 6, 3, -12]) // 返回 [-12, 3, 5, 6, 100]。
如果你有多种解法,请阐述各种解法的思路及优缺点。(仅需用代码实现一种解法,其它解法用文字阐述思路即可)
Sa lettre 5楼
let num = 0;
/***
* list 排序数组
* flag 升序or降序
***/
var createSort = function(list, flag = true) {
let length = list.length;
if (list.length <= 1) return list;
num++;
let index = 1;
let memo = list[0];
let leftArr = [];
let rightArr = [];
for(;index < length; index++) {
if (flag) {
if (list[index] < memo) {
leftArr.push(list[index])
} else {
rightArr.push(list[index])
}
} else {
if (list[index] > memo) {
leftArr.push(list[index])
} else {
rightArr.push(list[index])
}
}
}
return createSort(leftArr).concat([memo], createSort(rightArr))
}
console.log(createSort([5, 100, 6, 3, -12], true));
console.log(num);