1 Star 0 Fork 0

王吉 / Quick_Sort

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
sort.js 1.76 KB
一键复制 编辑 原始数据 按行查看 历史
王吉 提交于 2014-04-01 19:08 . quick sort
function sortFunc(array) {
var left = 0;
var right = array.length - 1;
var base = array[0];
if (array.length <= 1) {
return array;
} else if (array.length === 2) {
if (left > right) {
array[0] = right;
array[1] = left;
}
return array;
} else {
function checkFinish() {
return left === right;
}
function rightSearch() {
while (right > left) {
var temp = array[right];
if (temp < base) {
array[left] = temp;
break;
}
right--;
}
}
function leftSearch() {
while (left < right) {
var temp = array[left];
if (temp > base) {
array[right] = temp;
break;
}
left++;
}
}
while (!checkFinish()) {
rightSearch();
leftSearch();
}
array[left] = base;
var leftArray = array.slice(0, left);
var rightArray = array.slice(left + 1);
leftArray = sortFunc(leftArray);
rightArray = sortFunc(rightArray);
leftArray.push(base);
leftArray.concat(rightArray);
return leftArray;
}
}
var arr = [];
var util = require('util');
for (var i = 0; i < 100000; i++) {
arr.push(Math.round(Math.random() * 1000) + 1);
}
console.time('sort');
arr = sortFunc(arr);
console.timeEnd('sort');
// var fs = require('fs');
// var stream = fs.createWriteStream("result.txt");
// stream.on('open', function(fd) {
// arr.forEach(function(item) {
// stream.write(item.toString() + '\r\n');
// });
// stream.end();
// });
Go
1
https://gitee.com/sudowang/Quick_Sort.git
git@gitee.com:sudowang/Quick_Sort.git
sudowang
Quick_Sort
Quick_Sort
master

搜索帮助