查找排序[ 折半查找 ,插入排序]
======================
function searchSeat(srcArr, tag) {
var m = 0;
var n = srcArr.length - 1;
if (n < 1) {
if (n == -1 || tag <= srcArr[0]) {
return 0;
} else {
return 1;
}
} else {
if (tag <= srcArr[0]) {
return 0;
} else if (tag >= srcArr[srcArr.length - 1]) {
return srcArr.length
} else {
while (m <= n) {
var mid = parseInt((m + n) / 2);
if (tag <= srcArr[mid] && tag >= srcArr[mid - 1]) {
return mid;
} else if (tag >= srcArr[mid] && tag <= srcArr[mid + 1]) {
return mid + 1;
} else if (tag < srcArr[mid]) {
n = mid - 1;
} else if (tag > srcArr[mid]) {
m = mid + 1;
} else {
return -110;
}
}
}
}
return -200;
}
function sortFloat(arr) {
var l = arr.length;
var brr = [arr[0]];
for (var i = 1; i < l; i++) {
var seat = searchSeat(brr, arr[i]);
brr.splice(seat, 0, arr[i]);
}
return brr;
}
a=[]
for(i=1;i<100000;i++){a.push(parseInt(Math.random()*10000))}
console.log((new Date).getTime());
sortFloat(a);
console.log((new Date).getTime());
console.log((new Date).getTime());
sort(a);
console.log((new Date).getTime());
======================