【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



相关文章
|
4月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
163 67
|
5月前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
5月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
50 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
5月前
|
搜索推荐 算法 数据可视化
深入解析冒泡排序算法
深入解析冒泡排序算法
76 4
|
5月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
35 0
|
5月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
|
5月前
|
算法 Python
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
56 0
|
7月前
|
存储 算法 搜索推荐
【初阶数据结构篇】冒泡排序和快速排序(中篇)
与直接插入排序法相比,比较次数一致,但冒泡排序的交换需要执行三次,而直接插入排序因为使用了tmp临时变量存储要插入的数据,只用执行一次,所以直接插入排序法效率明显更高。
46 1
|
7月前
|
搜索推荐 Java
经典排序算法---冒泡排序
这篇文章详细介绍了冒泡排序算法的基本思想、比较轮数和次数,并提供了Java语言实现冒泡排序的代码示例,展示了如何通过相邻元素的比较和交换来达到排序的目的。
经典排序算法---冒泡排序
|
8月前
|
搜索推荐
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】
【数据结构常见七大排序(三)上】—交换排序篇【冒泡排序】And【快速排序】

热门文章

最新文章

  • 1
    局域网屏幕监控系统中的Python数据结构与算法实现
    139
  • 2
    2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
    56
  • 3
    2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    50
  • 4
    2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    55
  • 5
    2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    71
  • 6
    2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    43
  • 7
    2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    80
  • 8
    2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    44
  • 9
    2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    52
  • 10
    2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
    53