【408数据结构与算法】—冒泡排序(十八)
一、交换排序
交换排序思想:两两比较,如果发生逆序则交换,直到所有的记录都排好为止
常见的交换排序的方法:
- 冒泡排序O (n^2)
- 快速排序O(nlog2n)
二、冒泡排序
基本思想:每趟不断将记录两两比较,并按前小后大规则交换
冒泡排序的优点:每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素
如何提高效率?
一旦某一趟比较时不出现记录交换,说明已经排好序了,就可以结束本算法。
冒泡排序的算法
C语言实现
#include <stdio.h> #include <stdlib.h> int main() { int i ,j ,t; int a[10]; printf("请输入要排序的数据:"); for( i = 0 ; i < 10 ; i ++ ) { scanf(" %d " , & a[i]); } for( i = 0 ; i < 9 ; i++ ) for( j = 0 ; j < 9 - i ; j++ ) { if( a[j] > a[j+1] ) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } printf("排序过后的结果为:"); for( i = 0 ; i < 10 ; i++ ) { printf(" %d " ,a[i]); } return 0; }
三、冒泡算法的改进
改进的冒泡排序算法
四、时间复杂度分析
五、冒泡排序的算法评价
📢📢总结