1. 程式人生 > >javascript-冒泡和選擇排序

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)