冒泡排序的思路
冒泡排序算法相对其他排序运行效率较低,但是在概念上它是排序算法中最简单的
冒泡排序的思路
1、对未排序的各元素从头到尾依次比较相邻的两个元素大小关系
2、如果左边的队员高,则两队员交换位置
3、向右移动一个位置,比较下面两个队员
4、当走到最右端时,最高的队员一定被放在了最右边
5、按照这个思路,从最左边开始,这次走到倒数第二个位置的队员即可
6、依次类推,就可以将数据排序完成
冒泡排序的效率
冒泡排序的比较次数
如果一共有7个数字,那么每次循环是进行击此比较呢?
第一次循环比较6次,第二次5次,…知道最后一次进行了一次比较
对于7个数据比较次数:6+5+4+3+2+1
对于N个数据项呢?(n-1)+(n-2) + ... + 1 = n * (n-1)/2
通过大O表示法表示推导过程,我们来推导一下冒泡排序的大O排序:
n * (n - 1) / 2 = n^2/2 - n/2,根据规则2,只保留最高阶项,变成N^2/2.n^2/2,根据规则3,去除最高项的常量,变成n^2,因此冒泡排序法的比较次数
的大O表示法为O(n^2)
冒泡排序的交换次数
真实的次数:n * (n - 1) / 4===>因此,我们可以认为交换次数
的大O表示也是O(n^2)