monsterooo / blog

and make promises by the hours
MIT License
14 stars 1 forks source link

算法练习 #39

Open monsterooo opened 4 years ago

monsterooo commented 4 years ago

算法练习代码

练习地址: https://coderlane.net/s

排序分类

选择排序

function Solution() {
  var arr = [5,3,1,8,7,0,2,6];
  var N = arr.length;
  for(var i = 0; i < N; i++) {
    var minIdx = i;
    for(var j = i + 1; j < N; j++) {
      if (arr[j] < arr[minIdx]) { // 选择最小的元素
        minIdx = j;
      }
    }
    exch(arr, i, minIdx);
  }
  console.log('排序完成:', arr)
}
function exch(arr, i, j) {
  var temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}
Solution();

插入排序

function Solution() {
  var arr = [1,7,2,4,8,0];
  var N = arr.length;
  for(var i = 1; i < N; i++) {
    var cur = arr[i];
    var j = i - 1;
    while(j >= 0 && arr[j] > cur) {
      arr[j+1] = arr[j];
      --j;
    }
    arr[j+1] = cur;
  }
  console.log('插入排序方式1', arr)
}
Solution();