C#算法设计排序篇之01-冒泡排序(附带动画演示程序)
冒泡排序(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-冒泡排序(附带动画演示程序)相关推荐
- C#算法设计排序篇之04-选择排序(附带动画演示程序)
选择排序(Selection Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/681 访问. 选择排序是一种简 ...
- C#算法设计排序篇之06-堆排序(附带动画演示程序)
堆排序(Heap Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/685 访问. 堆排序是指利用堆积树(堆)这 ...
- C#算法设计排序篇之10-桶排序(附带动画演示程序)
桶排序(Bucket Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/693 访问. 桶排序的工作原理是将数组 ...
- C#算法设计排序篇之11-二叉树排序(附带动画演示程序)
二叉树排序(Binary Tree Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/695 访问. 二叉树排序 ...
- C#算法设计排序篇之09-基数排序(附带动画演示程序)
基数排序(Radix Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/691 访问. 基数排序属于" ...
- C#算法设计排序篇之08-计数排序(附带动画演示程序)
计数排序(Counting Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/689 访问. 计数排序是一个非基 ...
- C#算法设计排序篇之07-希尔排序(附带动画演示程序)
希尔排序(Shell's Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/687 访问. 希尔排序是插入排序的 ...
- C#算法设计排序篇之05-归并排序(附带动画演示程序)
归并排序(Merge Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/683 访问. 归并排序是建立在归并操作 ...
- C#算法设计排序篇之03-直接插入排序(附带动画演示程序)
直接插入排序(Straight Insertion Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/679 访 ...
最新文章
- 项目实践 | 行人跟踪与摔倒检测报警
- pyglet wave.Error: file does not start with RIFF id
- lda 可以处理中文_LDA数学八卦索引及全文文档
- python time 语句_python的time模块总结
- 【数据结构】——归并排序
- silverlight + wcf(json格式) + sqlserver存储过程分页
- (Python)零起步数学+神经网络入门
- HTML+CSS+JS实现 ❤️酷炫HUD科幻数据屏幕动画界面❤️
- oracle查看会话(常规操作)
- mysql 重要维护工具 图解
- 深度卷积神经网络的水稻穗瘟病检测方法
- Hibernate缓存的evict、clear和flush方法
- SNS:六度分隔理论
- 上高职业技术学校计算机学几年,上高县职业技术学校简介|上高县职业技术学校介绍...
- Codevs 1586 学校食堂
- es6的reduce用于求数组总和
- 手术分级标准目录2020_2020年3月份即将实施国家标准目录(四)
- HTML5实现消灭星星
- 数字冰雹 数字孪生城市智能运营中心(IOC)可视化决策系统
- 公众号授权第三方平台