《JAVA》淺談——氣泡排序
阿新 • • 發佈:2018-11-10
氣泡排序:是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。
演算法規則:由於演算法每次都將一個最大的元素往上冒,我們可以將待排序集合(0...n)看成兩部分,一部分為(k..n)的待排序unsorted集合,另一部分為(0...k)的已排序sorted集合,每一次都在unsorted集合從前往後遍歷,選出一個數,如果這個數比其後面的數大,則進行交換。完成一輪之後,就肯定能將這一輪unsorted集合中最大的數移動到集合的最後,並且將這個數從unsorted中刪除,移入sorted中。
程式碼實現(Java版本)
public void sort(int[] args) { //第一層迴圈從陣列的最後往前遍歷 for (int i = args.length - 1; i > 0 ; --i) { //這裡迴圈的上界是 i - 1,在這裡體現出 “將每一趟排序選出來的最大的數從sorted中移除” for (int j = 0; j < i; j++) { //保證在相鄰的兩個數中比較選出最大的並且進行交換(冒泡過程) if (args[j] > args[j+1]) { int temp = args[j]; args[j] = args[j+1]; args[j+1] = temp; } } } }