
冒泡排序要頻率的兩兩交換,我們可以先標記出最小的元素,最后再交換,這樣可以減少交換的次數。
特點:每趟循環只執行一次交換操作。
思路:在每次循環時找出最小的元素,然后標記一下,不執行交換,直到本次循環完之后,把標記的最小的元素放到最前面,然后再找第2小的元素。。。。
# JavaScript
~~~
function selectSort(arr) {
// 保存每次循環時最小元素的下標
let minIndex
for(let i=0;i<arr.length-1;i++) {
// 設置最小的開始為本次循環第一個元素
minIndex = i
for(let j=i+1;j<arr.length;j++) {
if(a[minIndex]>a[j]) {
minIndex = j
}
}
// 把最小的元素交換到開始的位置
[a[i],a[minIndex]] = [a[minIndex],a[i]]
}
return arr
}
~~~