javascript-冒泡和選擇排序
<script>
// 陣列的排序:
// sort()
// 氣泡排序:兩兩比較,大的放後面
var arr = [45,3,78,2,9];
console.log(arr)
// 0-1,1-2,2-3,3-4 0~length-1-0
// 0-1,1-2,2-3 0~length-1-1
// 0-1,1-2 0~length-1-2
// 0-1 0~length-1-3
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j] > arr[j+1]){
var ls = arr[j]
arr[j] = arr[j+1]
arr[j+1] = ls;
}
}
}
console.log(arr)
</script>
<script>
var arr = [23,67,9,3,15,1];
console.log(arr)
// 選擇排序:取第一位和後面所有做比較,拿到最小的,放在第一位
// 1.確定執行次數,和比較方式
// length-1
// 0-1,0-2,0-3,0-4 0~length-1
// 1-2,1-3,1-4 1~length-1
// 2-3,2-4 2~length-1
// 3-4 3~length-1
for(var i=0;i<arr.length-1;i++){
// 2.臨時將第一位儲存起來,假設第一位是最小值
var ls = arr[i];
var lsIndex = i;
for(var j=i+1;j<arr.length;j++){
// 3.開始比較,找真正的最小值,驗證剛才的假設是否正確
if(ls > arr[j]){
ls = arr[j];
lsIndex = j;
}
}
// 4.一輪結束後,找到了真正的最小值,再做交換
arr[lsIndex] = arr[i];
arr[i] = ls;
}
console.log(arr)