排序算法之冒泡排序

概念--冒泡排序:一种交换排序,相邻两个元素相互比较,如果反序则交换,直到没有反序的为止


(1) 简单代码实现---go                

该方式为最粗暴的方式,每次循环都要循环数组的长度次

如果针对数组后续元素已经是有序的,在第一排序后就已经是有序的了,算法还要进行不断的循环排序,浪费排序效率,为了减少这种无意义的判断,我们对算法进行优化


冒泡排序掌握的关键点:

        1. 外层循环---n-1 即数组的长度,遍历每个元素

        2. 内层循环:  n-1-i,比较相邻的两个元素,针对升序或降序变换元素的位置顺序。

        但是在java中可以直接使用Ayyays.sort(数组名)进行排序 (默认升序排序),但是冒泡算法既可以升序也可以降序排列

时间复杂度分析:

(1)最优时间复杂度:数组元素已经排好序且排序算法中加了flag判断  -----------O(n)

  (2)  最差时间复杂度:数组全部逆序 ----O(n^2)

你可能感兴趣的:(排序算法之冒泡排序)