408数据结构与算法—冒泡排序(十八)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了408数据结构与算法—冒泡排序(十八)相关的知识,希望对你有一定的参考价值。

【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;

三、冒泡算法的改进

改进的冒泡排序算法

四、时间复杂度分析


五、冒泡排序的算法评价

📢📢总结

以上是关于408数据结构与算法—冒泡排序(十八)的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题八十八之实现选冒泡排序算法

C语言试题八十八之实现选冒泡排序算法

408数据结构与算法—排序(十四)

408数据结构与算法—排序(十四)

408数据结构与算法—折半插入排序(十六)

408数据结构与算法—折半插入排序(十六)