冒泡排序: 内排序 交换类排序 稳定 的排序,平均时间复杂度O(n^2)
冒泡排序原理:“冒泡” 两字生动形象体现出了本排序算法的思想,包含n个数据的序列:
第1趟 从头开始两两比较相邻的数据,按照大到小或者小到大的顺序进行交换,直到序列(n个数据)中最大或者最小的数据到达序列最后第n位置结束。
第2趟 再从头开始两两比较相邻的数据,按照第一次的规则进行交换,直到序列(排除最后一个数据的n-1个数据)中最大或者最小的数据到达序列最后第n-1位置结束。
第3趟 再从头开始两两比较相邻的数据,按照前两次的规则进行交换,直到序列(排除最后两个数据的n-2个数据)中最大或者最小的数据到达序列最后第n-2位置结束。
……
第n-1趟 依次比较第1个和第2个数据,按照规则进行交换。
最坏情况下会经过n-1次排序。有些待排序序列并不是完全无序的,所以只需要<n-1次排序就能使序列达到有序状态。一旦某趟没有交换发生,即可提前结束排序。
代码:
上面忘了写判断arr[j]<arr[j+1] 晕了
最后盗图一张,感觉很炫很酷的一张图