选择排序的思想:从头至尾扫描序列,找出最小的一个关键字,和第一个关键字交换,接着从剩下的关键字中继续这种选择和交换,最终使序列有序。
是否稳定?
不稳定
算法的时间复杂度:
O
(
n
2
)
O(n^2)
O(n2)
实例:
原始序列:8个元素
49 38 65 97 76 13 27 49
js代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function SelectSort(arr){
//外层循环控制选择的次数,因为最后一个元素不用选择,一定是最大的
for(var i = 0;i<arr.length-1;i++){
var key = i;
//内层循环找到最小的元素
for(var j = i+1;j<arr.length;j++){
if(arr[j]<arr[key]){
key = j;
}
}
var temp = arr[i]
arr[i] = arr[key]
arr[key] = temp
}
return arr;
}
var arr1 = [49,38,65,97,76,13,27,49];
console.log(SelectSort(arr1));
</script>
</body>
</html>
控制台输出结果: