Day2: 冒泡排序
Posted 粤台计科
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day2: 冒泡排序相关的知识,希望对你有一定的参考价值。
要点:
冒泡排序是一种交换排序。
交换排序:两两比较待排序的关键字,发现两个关键字的顺序不对时候(数字大的在数字小的前面),交换位置,直到没有反序的数字为止。
基本思想:
以数组{13,8,24,3,18}为例。
第一趟:
第一次排序:8与13对比,8小于13,交换位置:8 13 24 3 18
第二次排序:13与24对比,13小于24,不换位置:8 13 24 3 18
第三次排序:24与3对比,3小于24,交换位置:8 13 3 24 18
第四次排序:24与18对比,18小于24,交换位置:8 13 3 18 24
第一趟一共进行了4次比较,排序结果:8 13 3 18 24
第二趟:
第一次排序:8和13对比,8小于13,不交换位置:8 13 3 18 24
第二次排序:13和3对比,3小于13,交换位置:8 3 13 18 24
第三次排序:13和18对比,13小于18,不交换位置:8 3 13 18 24
第二趟一共进行了3次比较,排序结果:8 3 13 18 24
第三趟:
第一次排序:8和3对比,8大于3,交换位置:3 8 13 18 24
第二次排序“8和13对比,8小于13,不换位置:3 8 13 18 24
第三趟一共进行了2次比较,排序结果:3 8 13 18 24
第四趟:
第一次排序:3和8对比,3小于8,不交换位置:3 8 13 18 24
第四趟一共进行了1次比较,排序结果:3 8 13 18 24
最终结果:
3 8 13 18 24
由此可见:N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即
冒泡排序最好的时间复杂度为O(n),即只走了一趟就排完成。
冒泡排序最坏的时间复杂度为O(n^2) 。
综上:冒泡排序总的平均时间复杂度为:O(n^2) 。
完整代码如下:
以上是关于Day2: 冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章