选择排序算法流程图_常用排序算法之选择排序
生活随笔
收集整理的這篇文章主要介紹了
选择排序算法流程图_常用排序算法之选择排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前兩天給大家分享了冒泡排序和插入排序(沒關注的同學,可以關注后查看歷史消息),今天繼續給大家分享另一種常用的排序算法--選擇排序。
選擇排序
選擇排序和插入排序很相似,也區分已排序區間和未排序區間,選擇排序是每次從未排序區間找到最小的元素放到已排序區間的末尾。
如下圖:
代碼示例
go示例:
func SelectionSort(nums []int, n int) { if n <= 1 { return } for i := 0; i < n; i++ { min := i for j := i + 1; j < n; j++ { if nums[j] < nums[min] { min = j } } if min != i { nums[i], nums[min] = nums[min], nums[i] } }}PHP示例:
function SelectionSort($nums) { if(count($nums) <= 1 ){ return $nums; } for ($i = 0; $i < count($nums);$i++) { $min = $i; for ($j = $i + 1; $j < count($nums); $j++) { if ($nums[$min] > $nums[$j]) { $min = $j; } } if ($min != $i) { $temp = $nums[$i]; $nums[$i] = $nums[$min]; $nums[$min] = $temp; } } return $nums;}JS示例:
const selectionSort = (arr) => { if (arr.length <= 1) return for (let i = 0; i < arr.length - 1; i++) { let minIndex = i for (let j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIndex]) { minIndex = j } } const temp = arr[i] arr[i] = arr[minIndex] arr[minIndex] = temp } console.log(arr)}性能分析
最后我們看下插入排序的性能和穩定性:
介紹完了三種排序算法,時間復雜度都是O(n2),也都是原地排序,選擇排序是不穩定的排序算法。插入排序和冒泡排序相比,插入排序需要一條語句,冒泡排序需要三個賦值語句,所以插入排序要優于冒泡排序。
但是在數據量大的時候這三個排序算法都不是很理想,接下來我會再分享兩種時間復雜度為O(nlogn)的排序算法。
最后,關注下唄~
總結
以上是生活随笔為你收集整理的选择排序算法流程图_常用排序算法之选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代软件工程讲义 2 开发技术 - 单元
- 下一篇: hbase动态更改行键设计_Hadoop