排序算法总结(1)

1. 冒泡排序

function bubbleSort(arr) {
  for (let i = 0,len = arr.length; i < len - 1; i++) {
    for (let j = 0; j < len - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

2. 选择排序

function selectSort(arr) {
  for (let i = 0,len = arr.length; i < len; i++) {
    let minIndex = i;
    for (let j = i+1; j < len; j++) {
      if (arr[minIndex] > arr[j]) {
        minIndex = j;
      }
    }
    [arr[minIndex],arr[i]]=[arr[i],arr[minIndex]];
  }
  return arr;
}

3. 插入排序

function insertSort(arr) {
  for (let i = 1, len = arr.length; i < len; i++) {
    for (let j = i; j > 0; j--) {
      if (arr[j] < arr[j - 1]) {
        [arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
      } else {
        break;
      }
    }
  }
  return arr;
}

3.1 插入排序的改进(用赋值代替交换)

function insertSort2(arr) {
  for (let i = 1, len = arr.length; i < len; i++) {
    let temp = arr[i];
    let j;
    for (j = i; j > 0; j--) {
      if (temp < arr[j - 1]) {
        arr[j] = arr[j - 1];
      } else {
        break;
      }
    }
    arr[j] = temp;
  }
  return arr;
}

你可能感兴趣的:(排序算法总结(1))