排序算法----选择排序-----冒泡排序----插入排序

   var arr = [9, 3, 1, 4, 2, 7, 8, 6, 5];

  //  交换位置
   function changePosition(curIndex, changedIndex) {
     var temp = arr[curIndex];
     arr[curIndex] = arr[changedIndex];
     arr[changedIndex] = temp;
   }

    // 简单选择排序,每次从剩余元素中找出最小元素,然后交换位置
    function selectionSort() {
      for (var i = 0; i < arr.length; i++) {
        var min = i;
        for (var j = i + 1; j < arr.length; j++) {
          if (arr[j] < arr[min]) {
            min = j
          }
        }
        if(min != i) {
          changePosition(i, min )
        }
      }
    }
    //selectionSort()


    // 冒泡排序,相邻元素,两两比较,交换位置
    function bubbleSort() {
      for(var i=0; i<arr.length; i++) {
        for(var j=0; j<arr.length-i-1; j++) { //大值一路跑到尾巴上,形成有序,
          if(arr[j] > arr[j+1]) {             //故而只需比较前面还未排序的值
            changePosition(j, j+1)
          }
        }
       
      }
    }
    // bubbleSort()


    //插入排序, 将待排序部分插入到已经排序部分
    function insertSort(arr) {
      for(var i=1; i<arr.length; i++) {
        var k = i;
        while(k>0 && arr[k] < arr[k-1]) {
          changePosition(k, k-1)
          k--;
        }
      }
    } 
   insertSort()
    console.log(arr)

 参考:https://www.cnblogs.com/chengxiao/p/6103002.html

posted @ 2018-03-03 20:28  巫瞅瞅  阅读(139)  评论(0编辑  收藏  举报