①、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
②、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數(也就是第一波冒泡完成)。
③、針對所有的元素重複以上的步驟,除了最後乙個。
④、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
**如下:
public class bubblesort
}if (flag)
// 第 i輪排序的結果為
system.out.print("第" + i + "輪排序後的結果為:");
display(array);
} return array;
} // 遍歷顯示陣列
public static void display(int array)
system.out.println();
} public static void main(string args) ;
// 未排序陣列順序為
system.out.println("未排序陣列順序為:");
display(array);
system.out.println("-----------------------");
array = sort(array);
system.out.println("-----------------------");
system.out.println("經過氣泡排序後的陣列順序為:");
display(array);
}}
結果如下:
①、從待排序序列中,找到關鍵字最小的元素
②、如果最小元素不是待排序序列的第乙個元素,將其和第乙個元素互換
③、從餘下的 n - 1 個元素中,找出關鍵字最小的元素,重複(1)、(2)步,直到排序結束
**如下:
public class choicesort
}// 將找到的最小值和i位置所在的值進行交換
if (i != min)
// 第 i輪排序的結果為
system.out.print("第" + (i + 1) + "輪排序後的結果為:");
display(array);
} return array;
} // 遍歷顯示陣列
public static void display(int array)
system.out.println();
} public static void main(string args) ;
// 未排序陣列順序為
system.out.println("未排序陣列順序為:");
display(array);
system.out.println("-----------------------");
array = sort(array);
system.out.println("-----------------------");
system.out.println("經過選擇排序後的陣列順序為:");
display(array);
}}
執行結果:
array[j] = tmp;// 存在比其小的數,插入
} return array;
} // 遍歷顯示陣列
public static void display(int array)
system.out.println();
} public static void main(string args) ;
// 未排序陣列順序為
system.out.println("未排序陣列順序為:");
display(array);
system.out.println("-----------------------");
array = sort(array);
system.out.println("-----------------------");
system.out.println("經過插入排序後的陣列順序為:");
display(array);
}}
四、總結上面講的三種排序,冒泡、選擇、插入用大 o 表示法都需要 o(n2) 時間級別。
一般不會選擇氣泡排序,雖然氣泡排序書寫是最簡單的,但是平均效能是沒有選擇排序和插入排序好的。
Java資料結構(二) 冒泡 選擇 插入排序演算法
這個名詞的由來很好理解,一般河水中的冒泡,水底剛冒出來的時候是比較小的,隨著慢慢向水面浮起會逐漸增大,這物理規律我不作過多解釋,大家只需要了解即可。冒泡演算法的運作規律如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,...
資料結構與演算法三(氣泡排序 選擇排序 插入排序)
排序 將一組 無序 的記錄序列調整為 有序 的記錄序列 公升序與降序 列表排序 將無序列表變為有序列表 def bubble sortup li 氣泡排序公升序 for i in range len li 1 第i趟 exchange false 增加乙個標誌位,當某一趟結束後列表順序沒有改變,說明...
資料結構 排序演算法 插入排序 選擇排序
今天我們來總結一下資料結構中各種排序演算法。資料結構排序演算法 part1 直接插入排序 思想 當插入第i i 1 個元素時,前面的array 0 array 1 array i 1 已經排好 序,此時用array i 的排序碼與array i 1 array i 2 的排序碼順序進行比較,找到插入...