冒泡排序(Bubble Sort)

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/672 访问。

它重复地访问要排序的元素列,一次比较两个相邻的元素,如果他们的顺序不符合预期就把他们交换过来。
访问元素的工作是重复地进行直到没有相邻元素需要交换时为止。


示例: 

public class Program {public static void Main(string[] args) {int[] array = { 43, 69, 11, 72, 28, 21, 56, 80, 48, 94, 32, 8 };BubbleSort(array);ShowSord(array);Console.ReadKey();}private static void ShowSord(int[] array) {foreach (var num in array) {Console.Write($"{num} ");}Console.WriteLine();}public static void BubbleSort(int[] array) {int swap;for (int i = 0; i < array.Length; i++) {for (int j = 0; j < array.Length - i - 1; j++) {if (array[j] > array[j + 1]) {swap = array[j];array[j] = array[j + 1];array[j + 1] = swap;}}}}}

以上是冒泡排序算法的一种实现,以下是这个案例的输出结果:

8 11 21 28 32 43 48 56 69 72 80 94 

分析:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/672 访问。

设数组的长度为n,那么外层循环一共执行n次:
第1次执行时,内部循环执行次数为n-1;
第2次执行时,内部循环执行次数为n-2;
...
第n-1次执行时,内部循环执行次数为1;
第n次执行时,内部循环执行次数为0;

根据等差数列求和公式  ,
计算出总次数为  ,
即  ,
除去低阶和常量得到  。
即冒泡排序算法的时间复杂度为:  。


 AlgorithmMan:

AlgorithmMan by Iori,AlgorithmMan是使用C#开发的一套用于算法演示的工具。

下载链接:AlgorithmMan-BubbleSort

C#算法设计排序篇之01-冒泡排序(附带动画演示程序)相关推荐

  1. C#算法设计排序篇之04-选择排序(附带动画演示程序)

    选择排序(Selection Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/681 访问. 选择排序是一种简 ...

  2. C#算法设计排序篇之06-堆排序(附带动画演示程序)

    堆排序(Heap Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/685 访问. 堆排序是指利用堆积树(堆)这 ...

  3. C#算法设计排序篇之10-桶排序(附带动画演示程序)

    桶排序(Bucket Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/693 访问. 桶排序的工作原理是将数组 ...

  4. C#算法设计排序篇之11-二叉树排序(附带动画演示程序)

    二叉树排序(Binary Tree Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/695 访问. 二叉树排序 ...

  5. C#算法设计排序篇之09-基数排序(附带动画演示程序)

    基数排序(Radix Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/691 访问. 基数排序属于" ...

  6. C#算法设计排序篇之08-计数排序(附带动画演示程序)

    计数排序(Counting Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/689 访问. 计数排序是一个非基 ...

  7. C#算法设计排序篇之07-希尔排序(附带动画演示程序)

    希尔排序(Shell's Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/687 访问. 希尔排序是插入排序的 ...

  8. C#算法设计排序篇之05-归并排序(附带动画演示程序)

    归并排序(Merge Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/683 访问. 归并排序是建立在归并操作 ...

  9. C#算法设计排序篇之03-直接插入排序(附带动画演示程序)

    直接插入排序(Straight Insertion Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/679 访 ...

最新文章

  1. gradle编译很慢解决方法
  2. 【转】微服务实践(五):微服务的事件驱动数据管理
  3. 互联网晚报 | 04月07日 星期四 |​ ​​​​刘强东卸任京东集团CEO,徐雷接任;世卫组织:中医药对治疗新冠有效...
  4. EPS 转 pdf 在线
  5. [NOI2014]动物园
  6. 重磅消息:F5收购Nginx!
  7. OpenCV-图像处理(11、形态学操作)
  8. Wonderware-InTouch 服务器Windows Server 2012 R2系统安装intouch2017
  9. 西南科技大学OJ题 带权无向图存储判定1064
  10. NOIP2016普及组复赛——T4魔法阵
  11. 转载---SQL Server XML基础学习之7--XML modify() 方法对 XML 数据中插入、更新或删除...
  12. C语言开发打气球小游戏
  13. 为什么有些人拼了命也要考上985?
  14. Android 个人中心页面前端代码
  15. 重定向和请求转发的区别
  16. python3.x安装HTMLTestRunner和使用
  17. C++多线程和并发-更新(互斥量的基本概念、使用、作用、案例)-2023/2/12
  18. deepin安装配置jdk环境变量
  19. .NET Framework Library 正式开源
  20. 【重学数据结构】栈与队列

热门文章

  1. Linux文件(目录)命名规则
  2. 【AI视野·今日CV 计算机视觉论文速览 第194期】Mon, 10 May 2021
  3. Java—Object类及自定义克隆详解
  4. Ubuntu 修改 ssh远程端口号
  5. 草稿 爬虫-访问登陆可见的页面-请求时带上cookie数据
  6. python-循环的入门
  7. tar.gz及tar.bz2两种常见格式的打包压缩及解压方法
  8. Java使用递归实现全排列的代码
  9. selenium 图片上传
  10. C语言版数据结构及算法_快速排序