核心思想:从第一个元素开始,比较相邻元素,左边元素大于右边元素则交换位置,反之不变,
每次得到最大值,即每次最大值“浮顶”,小的值沉底。
代码实现:
方法一:双重循环
方法二:递归实现
优化算法:如果序列已经有序,则不需要再次排序,设置一个交换标志位,第一次排序如果发生交换,标志位发生改变,判断标志位
时间复杂度:
最坏情况:o(n^2)
最好情况:o(n)
核心思想:从第一个元素开始,比较相邻元素,左边元素大于右边元素则交换位置,反之不变,
每次得到最大值,即每次最大值“浮顶”,小的值沉底。
代码实现:
方法一:双重循环
方法二:递归实现
优化算法:如果序列已经有序,则不需要再次排序,设置一个交换标志位,第一次排序如果发生交换,标志位发生改变,判断标志位
时间复杂度:
最坏情况:o(n^2)
最好情况:o(n)