選擇排序
選擇排序是通過每一趟排序過程中從待排序記錄中選擇出關鍵字最小(大)的記錄,將其依次放在資料表的最前或最後端的方法來實現整個資料表的有序排列。本節將介紹選擇排序方法中最簡單且最常用的簡單選擇排序。
選擇排序基本思想
第一趟排序在所有待排序的n個記錄中選出關鍵字最小的記錄,將它與資料表中的第乙個記錄交換位置,使關鍵字最小的記錄處於資料表的最前端;第二趟在剩下的n-1個記錄中再選出關鍵字最小的記錄,將其與資料表中的第二個記錄交換位置,使關鍵字次小的記錄處於資料表的第二個位置;重複這樣的操作,依次選出資料表中關鍵字第三小、第四小…的元素,將它們分別換到資料表的第
三、第四…個位置上。排序共進行n-1趟,最終可實現資料表的公升序排列。
下邊是實現**:
void chose_sort(int a,int len)
{ for (int i=0;i
時間複雜度
簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 n 個元素,則比較次數總是n (n - 1) / 2。
而移動次數與序列的初始排序有關。當序列正序時,移動次數最少,為 0.
當序列反序時,移動次數最多,為3n (n - 1) / 2。
所以,綜合以上,簡單排序的時間複雜度為 o(n2)。
空間複雜度
簡單選擇排序需要占用乙個臨時空間,在交換數值時使用。
排序演算法 選擇排序
private static int leftchild int i private static void perc int a,int i,int n for int i 0 ir j break else public static void heasp int r,int n for i 0...
排序演算法 選擇排序
摘自 wiki百科 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾 目前已被排序的序列 以此類推,直到所有元素均排序完畢。c語言實現 vo...
排序演算法 選擇排序
排序演算法作為最基本也是最常用的演算法,是我們必須要掌握的內容。本文從比較基礎的選擇排序演算法開始,進行排序演算法的介紹。思想 選擇排序,顧名思義,就是從一組總數為n的無序陣列中,進行一次遍歷,選擇出最小 最大 的乙個,把它交換到陣列的第0個位置。然後不斷重複該操作,直到最後兩個數。在第 i 次選擇...