排序演算法 選擇排序

2021-09-30 18:10:22 字數 1068 閱讀 7444

選擇排序的基本思想就是從待排序列中選擇出最小的,然後將被選出元素和序列的第乙個元素互換位置(當前預設是公升序排列),則互換完成後第乙個元素就是整個序列的最小的元素,則一次選擇排序結束。然後我們從剩下的子串行中選擇出最小的,然後將該被選出來的元素和該子串行的第乙個元素(即整個序列的第二個元素)互換位置,則當前整個序列的第二個元素就是當前序列中的次最小值,第二次選擇排序結束。以此類推,直到該待排序列只剩下乙個元素後,則整個序列有序。

選擇排序的時間複雜度:簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 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 次選擇...