定义
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
时间复杂度
O(n^2 )
输入
数组
输出
按一定规则排序的 数组
代码
Python
# python
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1, len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
print(selectionSort([5, 3, 6, 2, 10]))
JavaScript
// JavaScript
function findSmallest(arr) {
let smallest = arr[0]
let smallestIndex = 0
let arrLength = arr.length
for (let i = 1; i < arrLength; i++) {
if (arr[i] < smallest) {
smallest = arr[i]
smallestIndex = i
}
}
return smallestIndex
}
function selectionSort(arr) {
let newArr = []
let arrLength = arr.length
for (let i = 0; i < arrLength; i++) {
let smallest = findSmallest(arr);
newArr.push(arr.splice(smallest, 1)[0]);
}
return newArr
}
console.log(selectionSort([5, 3, 6, 2, 10]))