常用排序演算法

2021-09-07 17:26:29 字數 1952 閱讀 5034

一、氣泡排序

/*** 氣泡排序

* 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

* 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

* 針對所有的元素重複以上的步驟,除了最後乙個。

* 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

* @param numbers 需要排序的整型陣列

*/public static void bubblesort(int numbers)}}

}二、快排

/*** 查詢出中軸(預設是最低位low)的在numbers陣列排序後所在位置

* * @param numbers 帶查詢陣列

* @param low 開始位置

* @param high 結束位置

* @return 中軸所在位置

*/public static int getmiddle(int numbers, int low,int high)

numbers[low] = numbers[high];//比中軸小的記錄移到低端

while(low < high && numbers[low] < temp)

numbers[high] = numbers[low] ; //比中軸大的記錄移到高階

}numbers[low] = temp ; //中軸記錄到尾

return low ; // 返回中軸的位置

}/**

* * @param numbers 帶排序陣列

* @param low 開始位置

* @param high 結束位置

*/public static void quicksort(int numbers,int low,int high)

/*** 快速排序

* @param numbers 帶排序陣列

*/public static void quick(int numbers)

}三、歸併

/*** 歸併排序

* 簡介:將兩個(或兩個以上)有序表合併成乙個新的有序表 即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列

* 時間複雜度為o(nlogn)

* 穩定排序方式

* @param nums 待排序陣列

* @return 輸出有序陣列

*/public static int sort(int nums, int low, int high)

return nums;

}/**

* 將陣列中low到high位置的數進行排序

* @param nums 待排序陣列

* @param low 待排的開始位置

* @param mid 待排中間位置

* @param high 待排結束位置

*/public static void merge(int nums, int low, int mid, int high) else

}// 把左邊剩餘的數移入陣列

while (i <= mid)

// 把右邊邊剩餘的數移入陣列

while (j <= high)

// 把新陣列中的數覆蓋nums陣列

for (int k2 = 0; k2 < temp.length; k2++)

}四、堆排

public class heapsort ;

int arraylength=a.length;

//迴圈建堆

for(int i=0;i=0;i--)

} //如果k節點的值小於其較大的子節點的值

if(data[k]}//交換

private static void swap(int data, int i, int j)

}

常用排序演算法

筆者最近學習演算法,學了很久也只弄懂了幾個排序演算法,在這裡曬一下下,作為以後參考之用。一 為什麼要研究排序問題 許多計算機科學家認為,排序演算法是演算法學習中最基本的問題,原因有以下幾點 l有時候應用程式本身需要對資訊進行排序,如為了準備客戶賬目,銀行需要對支票賬號進行排序 l很多演算法將排序作為...

常用排序演算法

一 簡單排序演算法 由於程式比較簡單,所以沒有加什麼注釋。所有的程式都給出了完整的執行 並在我的vc環境 下執行通過。因為沒有涉及mfc和windows的內容,所以在borland c 的平台上應該也不會有什麼 問題的。在 的後面給出了執行過程示意,希望對理解有幫助。1.冒泡法 這是最原始,也是眾所...

常用排序演算法

排序演算法 最好時間 平均時間 最壞時間 輔助空間 穩定性 直接插入排序 o n o n 2 o n 2 o 1 穩定 希爾排序 o n 1.3 o 1 不穩定 直接選擇排序 o n 2 o n 2 o n 2 o 1 不穩定 堆排序 o n x lbn o n x lbn o n x lbn o ...