二 選擇排序(Selection Sort)

2021-09-16 12:03:17 字數 1223 閱讀 3116

表現最穩定的排序演算法之一,因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧。

選擇排序(selection-sort)是一種簡單直觀的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

第一種實現方式 (比較後交換元素)

第二種實現方式(記錄下標,不交換,執行效率比第一種高)

最佳情況:t(n) = o(n) 最壞情況:t(n) = o(n2) 平均情況:t(n) = o(n2)

第一種實現,在內迴圈向前比較完之後,如果比前一元素小,交換元素,並繼續向前查詢比較。

/**

* 選擇排序 的兩種實現方式

* (在這裡要注意,因為最後乙個位置的數絕對是最後迴圈後最大的值,

* 所以外層迴圈的迴圈次數 最好是arr.length-1).

*/public

static

void

selectionsort

(int

arr)}}

system.out.

println

(arrays.

tostring

(arr));

}

第二種實現:在內迴圈向前比較完之後,不進行交換,記錄當前最小元素的下標,在內迴圈結束後,將最小值與當前遍歷的元素交換。

//優化

public

static

void

selectionsort

(int

arr)

} temp = arr[i]

; arr[i]

= arr[minindex]

; arr[minindex]

= temp;

} system.out.

println

(arrays.

tostring

(arr));

}

排序二 選擇排序

定義低位index 0 從低位index遍歷陣列查詢最小元素 將最小元素與低位index元素交換 index加一。若start等於陣列長度則排序結束,否則執行2 來自維基百科 陣列s 9,1,5,3,8,7 第一趟 1,9,5,3,8,7 index 0,min 1 第二趟 1,3,5,9,8,7 ...

(二)選擇排序

選擇排序是八大排序演算法之一。其排序原理 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換其資料的索引位置,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換 第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。選...

排序演算法 二 選擇排序

之前給大家分享了排序演算法裡面比較簡單的氣泡排序,今天來分享一下選擇排序的演算法 選擇排序的思想 1.以公升序為例 在一組數中選出最大的數放到第乙個位置,或者選出最小的數放到最後乙個位置,2.在選取剩餘元素的最大數放到第二個位置,或選出剩餘元素中的最小值放到倒數第二哥位置,3.依次往下選取,直到遍歷...