比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
public static void bubblesort(int numbers) }}
}
2、快速排序
從數列中挑出乙個元素,稱為「基準」
重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。
在這個分割之後,該基準是它的最後位置。這個稱為分割(partition)操作。
遞迴地把小於基準值元素的子數列和大於基準值元素的子數列排序
public static void quicksort(int numbers, int start, int end)
} while (i <= j);
if (start < j)
quicksort(numbers, start, j);
if (end > i)
quicksort(numbers, i, end);
}}
3、選擇排序
在未排序序列中找到最小元素,存放到排序序列的起始位置。
再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。
以此類推,直到所有元素均排序完畢
public static void selectsort(int numbers)
temp = numbers[i];
numbers[i] = numbers[k];
numbers[k] = temp;
}}
4、插入排序
從第乙個元素開始,該元素可以認為已經被排序
取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
如果該元素(已排序)大於新元素,將該元素移到下一位置
重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
將新元素插入到該位置中
重複步驟
public static void insertsort(int numbers)
}
java中幾種常見的排序演算法
本人只研究過氣泡排序 選擇排序和快速排序,下面是快速排序的 一 冒泡 bubble 排序 氣泡排序 bubblesort 的基本思想是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。如此重複下去,直至最終完成排序。時間複雜度為 o n n 適用於排序小列表。void bubblesortarr...
Java中幾種常見的排序方式
日常操作中常見的排序方法有 氣泡排序 快速排序 選擇排序 插入排序 希爾排序,甚至還有基數排序 雞尾酒排序 桶排序 鴿巢排序 歸併排序等。一 氣泡排序 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有...
Java常見的排序演算法
氣泡排序演算法的運作如下 假定從後往前 比較相鄰的元素。如果第乙個比第二個大或小,就交換他們兩個的位置 將序列中所有元素兩兩比較,將最大的放在最後面。將剩餘序列中所有元素兩兩比較,將最大的放在最後面。重複第二步,直到只剩下乙個數。實現 1.設定迴圈次數。2.設定開始比較的位數,和結束的位數。3.兩兩...