1.冒泡排序的思路
官方概念:通过对待排序序列从前向后,依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐移到后部,就像气泡一样逐个上浮。
2.图解(以五个元素排序为例)
通过观察可以得出冒泡排序特点的:
(1)对于含有n个数据的序列需要进行n趟排序。
(2)冒泡排序确定符合排序的要求是从后往前。
3.代码实现
4.优化
问题场景:可能会存在一个序列无需进行n-1趟排序便能完成排序,如下图所示:
观察上述图片不难发现经过第一趟排序后就已经为生序序列,若按上述算法依然会进行3趟没有意义的排序。
优化思路:当执行完一趟排序后若未发生交换事件则可以提前结束排序。
实现方法如下:
新人第一次发文章,欢迎大佬指正!