Sort_1_insertionSort_插入排序

  1. 插入排序

插入排序

1.插入排序的思想是比较 naive, 从第 0 个元素开始, 维护一个有序序列, 每次将当前元素插入到有序序列里面, 换句话说: 将 num[i] 插入到区间 [0, i) 使 [0, i) 成为有序数组

vector<int> insertionSort(vector<int>& nums) {
  int len = nums.size();
  for (int i = 1; i < len; ++i) {
    // 保存当前元素的值 
    int tmp = nums[i];
    int j = i;
    // 前面比它大的往后覆盖
    while (j > 0 && nums[j-1] > tmp) {
      nums[j] = nums[j-1];
      --j;
    }
    // j 找到第 1 个比 nums[i] 小的位置, 插入到这里
    nums[j] = tmp;
  }
  return nums
}

转载请注明来源, from goldandrabbit.github.io

💰

×

Help us with donation