研究while 和 for 在选择排序下执行效率
`
var arr = [];
var i = 0;
while (i < 5000) {
arr[i] = (Math.random()).toFixed(2)
i++
};
var Date1 = (new Date).getTime();
console.log(Date1);
for (let i = 0; i < arr.length; i++) { //5000个数据大概20毫秒
let key = arr[i];
let index = i;
let j = i;
while (j < arr.length) {
if (key > arr[j]) {
key = arr[j];
index = j;
}
j++;
}
arr[index] = arr[i];
arr[i] = key;
}
var Date2 = (new Date).getTime()
console.log(Date2 - Date1);
for (let i = 0; i < arr.length; i++) { //5000个数据大概260毫秒
for (let j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
var Date3 = (new Date).getTime()
console.log(Date3 - Date2);
`

结论:while循环只需要for ++ 循环的3分之二的时间

浙公网安备 33010602011771号