資料結構之選擇排序(java)

2021-08-13 10:30:23 字數 1018 閱讀 3525

演算法描述:

在乙個長度為n的無序陣列中,第一遍遍歷n各元素,找出其中最小的元素與第乙個位置上的數交換;第二遍遍歷剩下的n-1個元素,找出其中最小的數與第二個位置上的數交換;…;第n-1趟遍歷剩下的2個資料,找出其中最小的數值與第n-1個元素交換,至此選擇排序完成。

演算法分析:

時間複雜度:o(n^2)

空間複雜度:o(1)

無法做到穩定性

舉例說明:

陣列:3 2 0 1

i=0 minindex=0

j=1 比較arr[1]與arr[0],發現2<3,將1賦給minindex;

j=2 比較arr[2]與arr[1],發現0<2,將2賦給minindex;

j=3 比較arr[3]與arr[2],發現1>0,minindex還是2;

內層for迴圈結束,交換arr[i]與arr[minindex]的值。由此確定第乙個位置上的值。

code:

public

class selectionsort

for (int i = 0; i < arr.length - 1; i++)

swap(arr, i, minindex);}}

public

static

void

swap(int arr, int i, int j)

public

static

void

printarray(int arr)

for (int i = 0; i < arr.length; i++)

}public

static

void

main(string args) ;

selectionsort(arr);

printarray(arr);

}}

資料結構之選擇排序的java實現

選擇排序 每次迴圈都比較元素內容,記錄較小元素的下標,但是不進行交換 迴圈之後再判斷是否需要進行交換 與氣泡排序不同,氣泡排序每次比較,一旦滿足條件就進行元素內容交換 1.實現與測試 public class selectsort system.out.println arrays.tostring...

資料結構之選擇排序

基本方法 從0索引開始,依次和後面元素比較,小的往前放,第一次完畢,最小值出現在了最小索引處,第二次找到第二小的值。具體是如何實現呢?第一輪是0索引上的資料依次跟後面各個索引上的資料進行比較,直到遇到乙個比它小的資料,這時候,這個小的資料就替換掉0索引上原來的資料,接著這個替換掉的資料繼續跟它原來的...

資料結構之選擇排序

選擇排序應該是最容易實現的一種排序方法,其原理很簡單,依舊分為兩塊資料,左邊選取資料與右邊的資料進行比較,取最小值,比較到最後的位置後交換資料,確保每一次比較中最小值都會調整到左邊並有序增加,實質上就是取最小值的函式,只不過外層包了乙個迴圈。void selectionsort int arr,in...