当前位置:首页>python>Python--插入排序

Python--插入排序

  • 2026-09-10 11:46:27
Python--插入排序
今天是插入排序,程序:

Python还是用截图来显示程序,因为缩进很重要。

运行的过程:

1 1 [3, 5, 4, 7, 2, 8, 6, 9, 1]

2 2 [3, 4, 5, 7, 2, 8, 6, 9, 1]

4 4 [3, 4, 5, 2, 7, 8, 6, 9, 1]

4 3 [3, 4, 2, 5, 7, 8, 6, 9, 1]

4 2 [3, 2, 4, 5, 7, 8, 6, 9, 1]

4 1 [2, 3, 4, 5, 7, 8, 6, 9, 1]

6 6 [2, 3, 4, 5, 7, 6, 8, 9, 1]

6 5 [2, 3, 4, 5, 6, 7, 8, 9, 1]

8 8 [2, 3, 4, 5, 6, 7, 8, 1, 9]

8 7 [2, 3, 4, 5, 6, 7, 1, 8, 9]

8 6 [2, 3, 4, 5, 6, 1, 7, 8, 9]

8 5 [2, 3, 4, 5, 1, 6, 7, 8, 9]

8 4 [2, 3, 4, 1, 5, 6, 7, 8, 9]

8 3 [2, 3, 1, 4, 5, 6, 7, 8, 9]

8 2 [2, 1, 3, 4, 5, 6, 7, 8, 9]

8 1 [1, 2, 3, 4, 5, 6, 7, 8, 9]

这样打印出的数据看着不方便,修改下程序:
运行结果:

原始: 1 1 [5, 3, 4, 7, 2, 8, 6, 9, 1]

交换: 1 1 [3, 5, 4, 7, 2, 8, 6, 9, 1]

原始: 2 2 [3, 5, 4, 7, 2, 8, 6, 9, 1]

交换: 2 2 [3, 4, 5, 7, 2, 8, 6, 9, 1]

原始: 3 3 [3, 4, 5, 7, 2, 8, 6, 9, 1]

原始: 4 4 [3, 4, 5, 7, 2, 8, 6, 9, 1]

交换: 4 4 [3, 4, 5, 2, 7, 8, 6, 9, 1]

交换: 4 3 [3, 4, 2, 5, 7, 8, 6, 9, 1]

交换: 4 2 [3, 2, 4, 5, 7, 8, 6, 9, 1]

交换: 4 1 [2, 3, 4, 5, 7, 8, 6, 9, 1]

原始: 5 5 [2, 3, 4, 5, 7, 8, 6, 9, 1]

原始: 6 6 [2, 3, 4, 5, 7, 8, 6, 9, 1]

交换: 6 6 [2, 3, 4, 5, 7, 6, 8, 9, 1]

交换: 6 5 [2, 3, 4, 5, 6, 7, 8, 9, 1]

原始: 7 7 [2, 3, 4, 5, 6, 7, 8, 9, 1]

原始: 8 8 [2, 3, 4, 5, 6, 7, 8, 9, 1]

交换: 8 8 [2, 3, 4, 5, 6, 7, 8, 1, 9]

交换: 8 7 [2, 3, 4, 5, 6, 7, 1, 8, 9]

交换: 8 6 [2, 3, 4, 5, 6, 1, 7, 8, 9]

交换: 8 5 [2, 3, 4, 5, 1, 6, 7, 8, 9]

交换: 8 4 [2, 3, 4, 1, 5, 6, 7, 8, 9]

交换: 8 3 [2, 3, 1, 4, 5, 6, 7, 8, 9]

交换: 8 2 [2, 1, 3, 4, 5, 6, 7, 8, 9]

交换: 8 1 [1, 2, 3, 4, 5, 6, 7, 8, 9]

这样就可以清楚地了解插入排序的过程了,尤其是黄色背景标出的两组。
插入排序就是每次将一个未排序元素插入到已排序部分的合适位置。其实用“插入”词容易让人误会,让AI做下解释工作:

初始数组: [5, 3, 4, 7, 2, 8, 6, 9, 1]

【第1轮】拿元素 3 (位置1),向前插入...

  ↳ 与位置0交换 → [3, 5, 4, 7, 2, 8, 6, 9, 1]

  插入完成,最终位置0: [3, 5, 4, 7, 2, 8, 6, 9, 1]

【第2轮】拿元素 4 (位置2),向前插入...

  ↳ 与位置1交换 → [3, 4, 5, 7, 2, 8, 6, 9, 1]

  插入完成,最终位置1: [3, 4, 5, 7, 2, 8, 6, 9, 1]

【第3轮】拿元素 7 (位置3),向前插入...

  插入完成,最终位置3: [3, 4, 5, 7, 2, 8, 6, 9, 1]

【第4轮】拿元素 2 (位置4),向前插入...

  ↳ 与位置3交换 → [3, 4, 5, 2, 7, 8, 6, 9, 1]

  ↳ 与位置2交换 → [3, 4, 2, 5, 7, 8, 6, 9, 1]

  ↳ 与位置1交换 → [3, 2, 4, 5, 7, 8, 6, 9, 1]

  ↳ 与位置0交换 → [2, 3, 4, 5, 7, 8, 6, 9, 1]

  插入完成,最终位置0: [2, 3, 4, 5, 7, 8, 6, 9, 1]

【第5轮】拿元素 8 (位置5),向前插入...

  插入完成,最终位置5: [2, 3, 4, 5, 7, 8, 6, 9, 1]

【第6轮】拿元素 6 (位置6),向前插入...

  ↳ 与位置5交换 → [2, 3, 4, 5, 7, 6, 8, 9, 1]

  ↳ 与位置4交换 → [2, 3, 4, 5, 6, 7, 8, 9, 1]

  插入完成,最终位置4: [2, 3, 4, 5, 6, 7, 8, 9, 1]

【第7轮】拿元素 9 (位置7),向前插入...

  插入完成,最终位置7: [2, 3, 4, 5, 6, 7, 8, 9, 1]

【第8轮】拿元素 1 (位置8),向前插入...

  ↳ 与位置7交换 → [2, 3, 4, 5, 6, 7, 8, 1, 9]

  ↳ 与位置6交换 → [2, 3, 4, 5, 6, 7, 1, 8, 9]

  ↳ 与位置5交换 → [2, 3, 4, 5, 6, 1, 7, 8, 9]

  ↳ 与位置4交换 → [2, 3, 4, 5, 1, 6, 7, 8, 9]

  ↳ 与位置3交换 → [2, 3, 4, 1, 5, 6, 7, 8, 9]

  ↳ 与位置2交换 → [2, 3, 1, 4, 5, 6, 7, 8, 9]

  ↳ 与位置1交换 → [2, 1, 3, 4, 5, 6, 7, 8, 9]

  ↳ 与位置0交换 → [1, 2, 3, 4, 5, 6, 7, 8, 9]

  插入完成,最终位置0: [1, 2, 3, 4, 5, 6, 7, 8, 9]

✅ 最终排序结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]

每天进步一点点!

1.001^365=1.44!

最新文章

随机文章