冒泡排序和插入排序都是两层for循环,时间复杂度O(n)
区别在于
冒泡排序是拿一个元素和无序序列去遍历比较,比较得到整个无序序列中最值,然后放入有序序列,而一旦放入有序序列,就不再碰了
冒泡排序的当前元素是无论如何不会触摸有序序列的
非常生动的体现了冒泡的情形,泡泡是乱的,最大的泡泡在大大小小杂乱无章的泡泡群中漂浮到最上面
而插入排序呢恰恰相反
插入排序是拿一个元素和有序的数列去比,从单一元素的假有序一个一个加,拿一个元素进入有序序列,碰到比自己大或小的就即刻坐下,不再继续比较
插入排序的当前元素是无论如何不会触摸无序序列的
冒泡排序因为是无序,所以你即使遇到下一个比自己大,你不知道后面有没有更大的,你只能换一下,把手中的换成刚刚比较出更大的,去比接下来的
冒泡的每一次冒,都要把无序序列轮一遍
插入排序恰恰相反,一旦你遇到比自己大或小的了,你就知道,后面都是比自己大或小的,就没必要再继续往前走了,现在坐下,当前元素就进入了有序序列
插入的每一次插,都不一定要轮一遍有序序列