当前位置: 首页 > news >正文

超简单理解冒泡排序

1.冒泡排序(Bubble Sort)

较简单排序算法。

它会遍历若干次要排列的数列,每次遍历,会从前往后比较相邻两个数的大小。

如果前者比后者大,就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。

那么遍历需要一个变量控制范围。一个变量需要在这个范围里控制相邻元素进行比较。将最大的数作为有序数,在进行下一趟

比较就把它"踢出"遍历范围。如此一来,每个"它"都是作为"它"那次遍历的最大数,最后实现有序。

#include<stdio.h>
swap(int* x,int* y)
{int temp;temp = *x;*x = *y;*y = temp;
}
void bubble_sort(int* a, int n)
{int i, j;int flag;for (i = n - 1; i > 0; i--){flag = 0;//标志for (j = 0; j < i; j++){if (a[j] > a[j + 1]){swap(&a[j], &a[j + 1]);flag = 1;//交换,标志设为1}}if (flag == 0){break;//没发生交换,已有序}}
}
void main()
{int str[] = {2,3,4,10,9,8,7,6,5,1};int zf = sizeof(str) / sizeof(str[0]);bubble_sort( str, zf);int i;for (i = 0; i < zf; i++){printf("%3d",str[i]);}
}

2.冒泡排序的时间复杂度和稳定性

2.1冒泡排序的时间复杂度是O(n^2)。

排序算法中有两个for循环。

每个for循环的次数都是n。用数组下标表示范围就是(0,9)


2.2冒泡排序稳定性

它稳定,满足稳定算法定义。

算法稳定性:假设数列中存在a[i]=a[j];若在排序之前,a[i]在a[j]之前,排序后,a[i]还在a[j]之前,那这个算法就是稳定的!

http://www.lryc.cn/news/206973.html

相关文章:

  • 模拟IC设计工程师成长日记
  • 修炼k8s+flink+hdfs+dlink(六:学习namespace,service)
  • 法语导游就业前景如何?
  • iOS自动混淆测试处理笔记
  • C51--单片机中断
  • Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况
  • 艾泊宇产品战略:华为手机品牌是如何从低端到高端的
  • 视频批量AI智剪:提升剪辑效率的秘密方法
  • linux环境执行jar脚本
  • 特权同学FPGA官方全资料包括电子书下载
  • 《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力
  • iOS_Crash 四:的捕获和防护
  • spring boot项目运行jar包读取包内resources目录下的文件
  • 浙大陈越何钦铭数据结构06-图1 列出连通集
  • C# Winform编程(9)网络编程
  • RabbitMQ中方法channel.basicAck的使用说明
  • Jenkins+Python自动化测试持续集成详细教程
  • Lightroom学习之路
  • Day 2 Abp框架下,MySQL数据迁移时,添加表和字段注释
  • 传智教育研究院重磅发布Java学科新研发《智慧养老》项目
  • Fiddler抓包VSCode和探索
  • Pytorch指定数据加载器使用子进程
  • 【科普】干货!带你从0了解移动机器人(六) (底盘结构类型)
  • 爆肝整理,Pytest+Allure+Jenkins自动化测试集成实战(图文详细步骤)
  • 微信批量添加好友,让你的人脉迅速增长
  • 3D模型怎么贴法线贴图?
  • QT中文乱码解决方案与乱码的原因
  • sam9x60 boot
  • 3D模型格式转换工具HOOPS Exchange:支持国际标准STEP格式!
  • java--死循环与循环嵌套