寫(xiě)個(gè)冒泡排序
寫(xiě)就寫(xiě)嘛纸厉,走你莽囤!
function bubbleSort(arr) {
let count = 0; //統(tǒng)計(jì)循環(huán)次數(shù)
for(let i = arr.length; i > 0; i--) { // 從最后一個(gè)選起
for (let j = 0; j < i; j++) { // 限定對(duì)比的范圍
// 前一個(gè)和后一個(gè)對(duì)比,如果前一個(gè)大于后一個(gè)房官,就調(diào)換位置
if (arr[j] < arr[j + 1]) {
const temp = arr[j]; // 緩存前一個(gè)
// 刪除最后一個(gè)趾徽,插入一樣的前一個(gè),這個(gè)時(shí)候2個(gè)都是前一個(gè)一樣的值
arr.splice(j, 1, arr[j + 1]);
arr.splice(j + 1, 1, temp); // 刪除后一個(gè)易阳,把緩存的前一個(gè)插入
/* 這樣也是可以的嘛附较,目的都是調(diào)換位置
arr[j] = arr[j + 1];
arr[j+1] = temp;
*/
}
count++;
}
}
console.log(`循環(huán)次數(shù)為:${count}次`);
return arr;
}
能優(yōu)化一下嗎
??? 什么鬼, 這個(gè)還可以優(yōu)化潦俺?
經(jīng)過(guò)3天3夜的思考拒课,掉了300根頭發(fā),發(fā)現(xiàn)好像每一次遍歷都不用跟前面一個(gè)再比了
function bubbleSort(arr) {
let count = 0; //統(tǒng)計(jì)循環(huán)次數(shù)
for(let i = arr.length; i > 0; i--) { // 從最后一個(gè)選起
for (let j = 0; j < i - 1; j++) { // ** 就在這事示,減1就好了早像,可以節(jié)省循環(huán)
// 前一個(gè)和后一個(gè)對(duì)比,如果前一個(gè)大于后一個(gè)肖爵,就調(diào)換位置
if (arr[j] < arr[j + 1]) {
const temp = arr[j]; // 緩存前一個(gè)
// 刪除最后一個(gè)卢鹦,插入一樣的前一個(gè),這個(gè)時(shí)候2個(gè)都是前一個(gè)一樣的值
arr.splice(j, 1, arr[j + 1]);
arr.splice(j + 1, 1, temp); // 刪除后一個(gè)劝堪,把緩存的前一個(gè)插入
/* 這樣也是可以的嘛冀自,目的都是調(diào)換位置
arr[j] = arr[j + 1];
arr[j+1] = temp;
*/
}
count++;
}
}
console.log(`循環(huán)次數(shù)為:${count}次`);
return arr;
}