1.冒泡算法,是一种相对来说简单容易理解,易操作,但是不够便捷的一种排序方式
下面,通过一个例子,来快速的理解冒泡算法的含义,现在假如有一个列表a = [9, 5 ,1 ,4, 8, 6, 2, 3, 7 ]
列表a中含有数字1-9,现在通过冒泡算法来将列表中的数字进行正序排列。
第一遍:将下标为0的9作为中心点,和下标为1的数做比较,如果大于下标为1的数字则交换位置,否则保持位置不变
如果交换了位置,则继续将9作为中心点,继续和下标为2的数值做比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止
如果没有交换位置,则按照作比较的下标为1的数字和下一位下标为2的数字进行比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止
a[0] = 9, a[1] = 5 9>5 则 a = [5, 9, 1, 4, 8, 6, 2, 3, 7]
a[1] = 9, a[2] = 1 9>2 则 a = [5, 1, 9, 4, 8, 6, 2, 3, 7]
以此类推
第二遍:当所有的数字都做了比较之后,得到的应该是这样的一个列表 a = [5, 1, 4, 8, 6, 2, 3, 7, 9]
将下标为0数字和下标为1的数字作比较,如果大于则交换位置,否则位置不变,规则和第一遍的相同
于是,按照这样的原理,当执行到第八遍的时候,列表就是一个正序排列的列表 a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2.冒泡算法仍然拥有优化改进的地方,具有相对的可操作性,但是也从侧面反映了冒泡算法庞大的计算量