選擇排序
直接上**
**解釋// 從小到大排序
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 我們對其進行從小到大的排序 現在我們預設陣列中第乙個元素就是陣列中的最小值,將它與其後邊的所有元素進行比較,當有元素的值小於當前預設最小元素時,交換這兩個元素的順序。當陣列第乙個元素小於後邊所有元素時,我們再用陣列第二個...