冒泡排序和選擇排序

冒泡排序

  • 比較相鄰的兩個(gè)元素,如果第一個(gè)元素比第二個(gè)元素大,則交換它倆的位置。

  • 對(duì)每一對(duì)相鄰的元素做以上同樣的功能,從開始第一個(gè)比較到最后一個(gè),在這一輪比較中,就能確定出最大的那個(gè)數(shù),并且放在了數(shù)組的最后一個(gè)位置。

  • 以上操作是第一輪,以后每一輪都重復(fù)執(zhí)行以上的操作,但每輪后都會(huì)比之前少比較一次。(因?yàn)槊枯喓竽芄潭ǔ鰜硪粋€(gè)最大值)。

** 示例 (從小到大排序) **
var arr = [5,3,1,6,7,2,8,4];
//排序的輪數(shù)遍歷
for (var i = 0; i < arr.length - 1; i++){
//每輪執(zhí)行的次數(shù)遍歷
for (var j = 0; j < arr.length - 1 - i; j++){
if (arr[j] >= arr[j + 1]{
//比較相鄰的兩個(gè)元素,并且每一輪都是從下標(biāo)為0開始,所以是 j 和 j + 1 比較,比較完之后,交換兩個(gè)元素的位置
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);

選擇排序

  • 每輪從數(shù)組中的一個(gè)位置的元素依次和剩下的元素進(jìn)行大小比較,小的值放在第一個(gè)位置。每輪都會(huì)固定出第一個(gè)位置。以后重復(fù)執(zhí)行這個(gè)排序的規(guī)則。

** 示例 (從小到大排序) **
var arr = [5, 3, 1, 6, 7, 2, 8, 4];
//輪數(shù)的循環(huán)
for (var i = 0; i < arr.length - 1; i++) {
//每輪的次數(shù) 循環(huán)
for (var j = i + 1; j < arr.length; j++) {
//比較i 和 j 位置的元素大小,并進(jìn)行位置交換
if (arr[i] >= arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容