冒泡排序(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. 项目实践 | 行人跟踪与摔倒检测报警
  2. pyglet wave.Error: file does not start with RIFF id
  3. lda 可以处理中文_LDA数学八卦索引及全文文档
  4. python time 语句_python的time模块总结
  5. 【数据结构】——归并排序
  6. silverlight + wcf(json格式) + sqlserver存储过程分页
  7. (Python)零起步数学+神经网络入门
  8. HTML+CSS+JS实现 ❤️酷炫HUD科幻数据屏幕动画界面❤️
  9. oracle查看会话(常规操作)
  10. mysql 重要维护工具 图解
  11. 深度卷积神经网络的水稻穗瘟病检测方法
  12. Hibernate缓存的evict、clear和flush方法
  13. SNS:六度分隔理论
  14. 上高职业技术学校计算机学几年,上高县职业技术学校简介|上高县职业技术学校介绍...
  15. Codevs 1586 学校食堂
  16. es6的reduce用于求数组总和
  17. 手术分级标准目录2020_2020年3月份即将实施国家标准目录(四)
  18. HTML5实现消灭星星
  19. 数字冰雹 数字孪生城市智能运营中心(IOC)可视化决策系统
  20. 公众号授权第三方平台

热门文章

  1. 【今日CV 视觉论文速览】05 Dec 2018
  2. 多态 java 1614787331
  3. django-orm框架了解
  4. mysql-查询例题大全
  5. Laravel服务提供者在平台短信服务中的应用
  6. git 分支查看与切换
  7. 最新版Byte Buddy完全支持Java 11
  8. Extjs格式化时间
  9. 前后端分离-从MVC到前后端分离
  10. nfs搭建和可能的问题