原创 直接插入排序

直接插入排序(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) {

原创 排序

根據在排序過程中待排序的記錄是否全部被放置在內存中,排序分爲:內排序 和 外排序。內排序是在排序整個過程中,待排序的所有記錄全部被放置在  內存中。外排序 是 由於排序的 記錄個數太多,不能同時放在內存,整個排序過程需要在 內外存 之間多