#插入排序

Insertion Sort

🔗 LeetCode

#步骤

  1. 假设第一个数是已排序的有序数组
  2. 从第二个数开始,将有序数组最后一位开始向后移动(也可以使用类似冒泡的交换),直到找到第二个数适合插入的位置并插入
  3. 重复每一个数直到排序完成

#代码实现

function sortArray(nums: number[]): number[] {
  if (nums.length <= 1) {
    return nums
  }

  // 假设第一个数是已排序的有序数组

  // 从第二个数开始
  for (let i = 1; i < nums.length; i++) {
    // 倒序遍历有序数组
    for (let j = i; j > 0 && nums[j - 1] > nums[j]; j--) {
      // 将有序数组最后一位开始向后移动直到找到位置插入(也可以使用类似冒泡的交换)
      ;[nums[j - 1], nums[j]] = [nums[j], nums[j - 1]]
    }
  }

  return nums
}

#性能

时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定