一、冒泡排序:
1.從列表的第一個數字到倒數第二個數字,逐個檢查:若某一個數字大于他的下一位,則將它與它的下一位交換。
2、重復步驟1,直至再也不能交換。
我的理解是所謂冒泡嘛就是將大的數字往后冒,將數組中相鄰兩個元素一一比較之后大的放后邊~
算法代碼:
for(int i=0; i<arr.length-1; i++){for(int j=0; j<arr.length-1-i; j++){if(arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}
}
}
二、選擇排序:
1、設數組內存放了n個待排數字,數組下標從1開始,到n結束。
2、初始化i=1
3、從數組的第i個元素開始到第n個元素,尋找最小的元素。
4、將上一步找到的最小元素和第i位元素交換。
5、i++,直到i=n-1算法結束,否則回到第3步
我的理解是將當前數字與之后的每一個數字進行比較,找出最小的與之替換~
算法代碼:
for(int i =0;i<arr.length-1;i++){
for(int j = i;j<arr.length-i-1;j++){
if(arr[j+1]<arr[i]){
int temp = arr[j+1];
arr[i] = temp;
arr[j+1] = arr[i];
}
}
}
三、插入排序1、首先新建一個空列表,用于保存已排序的有序數列(我們稱之為"有序列表")。
2、從原數列中取出一個數,將其插入"有序列表"中,使其仍舊保持有序狀態。
3、重復2號步驟,直至原數列為空。
我的理解是插入排序就是每一步都將一個待排數據按其大小插入到已經排序的數據中的適當位置,直到全部插入完畢。
算法代碼:
for(int i =0;i<arr.length-1;i++){
for(int j = i;j>0;j--){
if(arr[j+1]<arr[j]){
int temp = arr[j+1];
arr[j] = temp;
arr[j+1] = temp;
}
}
}
這就是我總結的集中比較常用的排序算法啦~
新聞熱點
疑難解答