【408数据结构与算法】—冒泡排序(十八)
原创
©著作权归作者所有:来自51CTO博客作者wx62bdb159cc187的原创作品,请联系作者获取转载授权,否则将追究法律责任
【408数据结构与算法】—冒泡排序(十八)
一、交换排序
交换排序思想:两两比较,如果发生逆序则交换,直到所有的记录都排好为止
常见的交换排序的方法:
二、冒泡排序
基本思想:每趟不断将记录两两比较,并按前小后大规则交换
冒泡排序的优点:每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素
如何提高效率?
一旦某一趟比较时不出现记录交换,说明已经排好序了,就可以结束本算法。
冒泡排序的算法
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;
}
三、冒泡算法的改进
改进的冒泡排序算法
四、时间复杂度分析
五、冒泡排序的算法评价
📢📢总结