選擇排序的基本思想就是從待排序列中選擇出最小的,然後將被選出元素和序列的第乙個元素互換位置(當前預設是公升序排列),則互換完成後第乙個元素就是整個序列的最小的元素,則一次選擇排序結束。然後我們從剩下的子串行中選擇出最小的,然後將該被選出來的元素和該子串行的第乙個元素(即整個序列的第二個元素)互換位置,則當前整個序列的第二個元素就是當前序列中的次最小值,第二次選擇排序結束。以此類推,直到該待排序列只剩下乙個元素後,則整個序列有序。
選擇排序的時間複雜度:簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 n 個元素,則比較次數永遠都是n (n - 1) / 2。而移動次數與序列的初始排序有關。當序列正序時,移動次數最少,為 0。當序列反序時,移動次數最多,為3n (n - 1) / 2。所以,綜上,簡單排序的時間複雜度為o(n2)。
//選擇排序
public
class
selectionsort
; system.out.
println
("排序之前:");
for(
int i : arrint)
system.out.
println
("\t");
system.out.
println
("排序之後:");
for(
int i :
selectionsort
(arrint))}
private
static
int[
]selectionsort
(int
arr)
}//在內層迴圈結束,也就是找到本輪迴圈的最小的數以後,再進行交換
排序演算法 選擇排序
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 次選擇...