原创 直接插入排序
直接插入排序(Straight Insertion Sort)的基本操作是 將一個記錄插入到已經排好序的有序表中,從而得到一個新的,記錄數增1的有序表。java實現:public static void Insert_Sort(int[]
原创 快速排序
快速排序(Quick Sort)的基本思想是:通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序的目的。java實現:public static vo
原创 簡單選擇排序
簡單選擇排序(Simple Selection Sort)就是通過 n-i 次關鍵字的比較,從 n-i+1 個記錄中選出關鍵字最小的記錄,並和第 i (1<= i <= n)個記錄交換之。java代碼實現:public static vo
原创 單例模式
Singleton 模式和 Double-Checked Locking 模式都比較簡單,而且非常常用。它們都用於確保某個類只有一個對象實例化。兩個模式的區別在於:Singleton 模式用在多線程中,Double-Checked Loc
原创 堆排序
堆是具有下列性質的完全二叉樹:每個節點的值都大於或等於其左右孩子節點的值,稱爲大頂堆;或每個節點的值都小於或等於其左右孩子節點的值,稱爲小頂堆。堆排序(Heap Sort)就是利用堆(假設利用大頂堆)進行排序的方法。它的基本思想是,將待排
原创 冒泡排序
冒泡排序(Bubble Sort)一種 交換排序,它的基本思想是:兩兩比較相鄰記錄關鍵字,如果反序則交換,直到沒有反序的記錄爲止。java代碼實現:public static void bubble_sort(int[] arr) {
原创 排序
根據在排序過程中待排序的記錄是否全部被放置在內存中,排序分爲:內排序 和 外排序。內排序是在排序整個過程中,待排序的所有記錄全部被放置在 內存中。外排序 是 由於排序的 記錄個數太多,不能同時放在內存,整個排序過程需要在 內外存 之間多