千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip

選擇排序是一種簡單直觀的排序算法,無論什么數(shù)據(jù)進去都是 O(n2) 的時間復雜度。所以用到它的時候,數(shù)據(jù)規(guī)模越小越好。唯一的好處可能就是不占用額外的內(nèi)存空間。
1. 基本思想
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
選擇排序的思想其實和冒泡排序有點類似,都是在一次排序后把最小的元素放到最前面,或者將最大值放在最后面。但是過程不同,冒泡排序是通過相鄰的比較和交換。而選擇排序是通過對整體的選擇,每一趟從前往后查找出無序區(qū)最小值,將最小值交換至無序區(qū)最前面的位置。
2. 算法步驟
首先在未排序序列中找到最?。ù螅┰兀娣诺脚判蛐蛄械钠鹗嘉恢?。
再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。
重復第二步,直到所有元素均排序完畢。
3. 動圖演示
4. 復雜度分析
- 平均時間復雜度:O(N^2)
- 最佳時間復雜度:O(N^2)
- 最差時間復雜度:O(N^2)
- 空間復雜度:O(1)
- 排序方式:In-place
- 穩(wěn)定性:不穩(wěn)定
標簽: