從第乙個元素開始遍歷陣列,每相鄰的兩個元素比較大小,若前乙個元素大於後乙個元素,則兩個位置交換資料。
單次迴圈中,最後乙個單元參與比較,不參與迴圈
之前比較出的最大值,不再參與之後的比較
n個單元,只要迴圈比較n-1次
var arr = [5,4,3,2,1];
//通過for迴圈實現排序,需要多次迴圈
//通過迴圈,生成所有的索引下標
for(var j = 0; j <= arr.length - 1 - 1 ; j++)}}
每迴圈遍歷一次陣列,比較出最小元素,然後將最小元素放置於當次迴圈的第乙個單元。
從第乙個單元開始遍歷陣列,第乙個單元和第二個單元比較,數值較小的單元的索引值儲存在min中,再跟第三個單元比較,以此類推,最後min就是數值最小單元的索引值,判斷最小數值是不是在第一位,如果不在,則交換位置,第一次迴圈結束。
第二次迴圈中,比較是從第二個單元開始,迴圈從第三個單元開始,最小數值的單元最後要放在第二個單元。
第三次迴圈中,比較是從第三個單元開始,迴圈從第四個單元開始,最小數值的單元最後要放在第三個單元 。
一共要迴圈arr.length-1次。
for( var j = 0; j < arr.length-1; j++)
//min索引中儲存的是所有索引中最小的
}if(min !== j)
}
選擇排序,先找索引,一次迴圈交換一次位置,效率更高。
氣泡排序,相鄰位置比較,前乙個大於後乙個,就要交換位置。
js的氣泡排序和選擇排序
概念 依次對陣列中相鄰數字進行比較 兩兩比較 大的放後面 學前準備 思考1 i arr.length 是遍歷幾次 i arr.length 1 是遍歷幾次 思考2 交換兩個變數 思考3 陣列中的最大值放到最後 var arr 5,4,3,2,1 氣泡排序演算法 比較相鄰的元素。如果第乙個比第二個大,...
js 陣列氣泡排序
氣泡排序原理 公升序 比較相鄰元素,如果第乙個比第二個大,就交換它們兩個 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對.在這一點,最後的元素應該會是最大的數.針對所有的元素重複以上的步驟,除了最後乙個.持續每次對原來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較.1 陣列arr...
排序之氣泡排序和選擇排序
排序的概念與分類 首先我們必須得了解何為排序,使得序列按照乙個關鍵字的有序的排列,這樣的操作就稱為排序。排序用到的解結構與函式 define maxsize 排序數值長度的最大值 typedef struct sqlist 儲存要排序的陣列,r 0 作為乙個臨時變數,length 記錄順序表的長度 ...