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

简介: 交换排序思想:两两比较,如果发生逆序则交换,直到所有的记录都排好为止

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

一、交换排序

交换排序思想:两两比较,如果发生逆序则交换,直到所有的记录都排好为止

2345_image_file_copy_314.jpg

常见的交换排序的方法:

  • 冒泡排序O (n^2)
  • 快速排序O(nlog2n)

二、冒泡排序

基本思想:每趟不断将记录两两比较,并按前小后大规则交换

2345_image_file_copy_315.jpg

2345_image_file_copy_316.jpg

2345_image_file_copy_317.jpg

2345_image_file_copy_318.jpg

2345_image_file_copy_319.jpg

冒泡排序的优点:每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素

如何提高效率?

一旦某一趟比较时不出现记录交换,说明已经排好序了,就可以结束本算法。

冒泡排序的算法

2345_image_file_copy_320.jpg

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

三、冒泡算法的改进

2345_image_file_copy_321.jpg

改进的冒泡排序算法

2345_image_file_copy_322.jpg

四、时间复杂度分析

2345_image_file_copy_323.jpg

2345_image_file_copy_324.jpg

五、冒泡排序的算法评价

2345_image_file_copy_325.jpg

📢📢总结

2345_image_file_copy_326.jpg



相关文章
|
1月前
|
存储 算法 搜索推荐
【初阶数据结构篇】冒泡排序和快速排序(中篇)
与直接插入排序法相比,比较次数一致,但冒泡排序的交换需要执行三次,而直接插入排序因为使用了tmp临时变量存储要插入的数据,只用执行一次,所以直接插入排序法效率明显更高。
|
1月前
|
搜索推荐 Java
经典排序算法---冒泡排序
这篇文章详细介绍了冒泡排序算法的基本思想、比较轮数和次数,并提供了Java语言实现冒泡排序的代码示例,展示了如何通过相邻元素的比较和交换来达到排序的目的。
经典排序算法---冒泡排序
|
2月前
|
搜索推荐
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】
|
2月前
|
算法 PHP
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
22 1
|
3月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
3月前
|
算法 搜索推荐
数据结构与算法-冒泡排序
数据结构与算法-冒泡排序
23 2
|
3月前
|
搜索推荐 算法 大数据
​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
|
3月前
|
机器学习/深度学习 搜索推荐 算法
【C/排序算法】:快速排序和冒泡排序
【C/排序算法】:快速排序和冒泡排序
28 0
|
3月前
|
搜索推荐 算法
排序算法之冒泡排序
排序算法之冒泡排序
23 0
|
3月前
|
搜索推荐
排序算法---冒泡排序----详解&&代码
排序算法---冒泡排序----详解&&代码