插入排序与冒泡排序的区别

本周在学直接插入排序,今天组长问我,你画的插入排序流程图咋跟冒泡排序那么像?
我一时间意识到问题的所在,好像真的很像,看起来都是把小的元素或大的元素往前换,惊出一身冷汗,难道一个晚自习的时间就白干了么

网上相关讨论比较少,思考了一下, 结合与组长的讨论,得出如下结论:

我们之前提到过,排序的过程是从无序到有序,而计算机是一步一步做事情的,排序过程中每一步都在接近理想排序结果,即每一阶段都会产生已经排序好的部分结果,某几个数已经被排好了,
冒泡排序每次是在无序区中比较交换,沉底的元素(或上浮的元素)产生一个本轮比较的最大或最小数进入有序区,则有序区中的元素(即已排好序的元素)位置就确定了,不会再变。
而插入排序每次是在有序区中比较交换,有序区中已排好序的元素的位置不是固定住的,会被新插入的数破坏。

冒泡排序与插入排序的区别

排序是经过多轮处理完成的,在每轮排序过程中都会产生已经排好序的元素,已排好序的元素的位置在后续处理中是否会发生变化是冒泡排序与插入排序的本质区别。

欢迎讨论~~
参考链接:
冒泡排序,选择排序,插入排序的区别