// 100万数据 在 260 ~ 270 ms 之间
function MySort( arr1 ) {
// write code here
function qsort(arr=[],l=0,r=arr.length-1){
if(l
// 100万数据 在 280 ~ 330 ms 之间
var devide_Xin = function (array, start, end) {
if(start >= end) return array;
var baseIndex = Math.floor((start + end) / 2), // 基数索引
i = start,
j = end;
while (i <= j) {
while (array[i] < array[baseIndex]) {
i++;
}
while (array[j] > array[baseIndex]){
j--;
}if(i <= j) {
var temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
}
return i;
}var quickSort_Xin = function (array, start, end) {
if(array.length < 1) {
return array;
}
var index = devide_Xin(array, start, end);
if(start < index -1) {
quickSort_Xin(array, start, index - 1);
}
if(end > index) {
quickSort_Xin(array, index, end);
}return array;
}
// 100万数据 在 430 ~ 450 ms 之间
arr.sort((a,b)=> a-b )
// 100万数据 在 470 ~ 530 ms 之间
var quickSort = function(arr) {
if (arr.length <= 1) { return arr;
}
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0;
i < arr.length;
i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
};
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ES6新特性拾遗
- JavaScript的继承
- 原型与原型链的个人理解
- uniapp|uniapp 实现保持登录状态
- js|Vue快速入门-个人笔记
- vuex|vuex5 Pinia状态管理
- 青龙教程资源分享|傻妞js插件教程
- CSS|【总结】(前端面试必考题 —— CSS两栏布局(最全面))
- 面试|【总结】(大厂面试常考手撕代码 —— JavaScript实现效果)