演算法基礎 選擇排序

2021-10-23 18:50:47 字數 669 閱讀 2121

選擇排序

直接上**

// 從小到大排序

function

selectionsort

(arr)

} temp = arr[i]

arr[i]

= arr[minindex]

arr[minindex]

= temp

}return arr

}

**解釋

所謂選擇,就是每次用當前的數字跟剩下的數字逐個進行對比,挑選出最小或者最大的數。

i = 0時,跟下標為1及後面的逐個進行比較,把最小的元素下標記錄下來,與a[0]做位置交換,然後進行下一輪比較;

i = 1時,跟下標為2及後面的逐個進行比較,把最小的元素下標記錄下來,與a[1]做位置交換,然後進行下一輪比較;

以此類推,如圖所示:

時間複雜度

對於這種演算法,我們需要遍歷陣列中的每乙個元素時間複雜度為o(n),並且,對於這個遍歷要執行n次操作,因此時間複雜度是o(n2),如無法理解,請看下圖:

基礎演算法 選擇排序

總體思想 先讓第乙個與第二個數比較,如果第二個數大,則用第乙個數繼續與第三個數比較,反之,則用第二個數與第三個數比較,若第三個數小,則用第三個數與第四個數比較,如此類推.直至在需排序的數中找到最小的乙個,並將這個數與第乙個數交換位置.再從第二個數開始,與第三個數開始比較,直至找到第二最小的數,並將這...

基礎演算法之選擇排序演算法

在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。def select sort array for i in range len arr...

演算法基礎之選擇排序

說一下選擇排序的基本演算法 現在有這樣乙個陣列,3 4 6 1 7 2 5 8 我們對其進行從小到大的排序 現在我們預設陣列中第乙個元素就是陣列中的最小值,將它與其後邊的所有元素進行比較,當有元素的值小於當前預設最小元素時,交換這兩個元素的順序。當陣列第乙個元素小於後邊所有元素時,我們再用陣列第二個...