经典排序算法 - 冒泡排序Bubble sort
经典排序算法 - 冒泡排序Bubble sort
其原理是比较接近的数字22,按照从小到交换大或降序排列,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头開始进行两两比較交换,直到倒数第二位时结束,其余类似看样例
样例为从小到大排序,
原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |
第一趟排序(外循环)
第一次两两比較6 > 2交换(内循环)
交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |
第二次两两比較,6 > 4交换
交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |
第三次两两比較,6 > 1交换
交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |
第四次两两比較,6 > 5交换
交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第五次两两比較,6 < 9不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二趟排序(外循环)
第一次两两比較2 < 4不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二次两两比較,4 > 1交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三次两两比較,4 < 5不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第四次两两比較,5 < 6不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三趟排序(外循环)
第一次两两比較2 > 1交换
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第二次两两比較,2 < 4不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第三次两两比較,4 < 5不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
排序完成,输出终于结果1 2 4 5 6 9
代码仅供參考
static void bubble_sort(int[] unsorted){for (int i = 0; i < unsorted.Length; i++){for (int j = i; j < unsorted.Length; j++){if (unsorted[i] > unsorted[j]){int temp = unsorted[i];unsorted[i] = unsorted[j];unsorted[j] = temp;}}}}static void Main(string[] args){int[] x = { 6, 2, 4, 1, 5, 9 };bubble_sort(x);foreach (var item in x){Console.WriteLine(item);}Console.ReadLine();}
冒泡排序动画演示
版权声明:本文博客原创文章。博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/bhlsheji/p/4750360.html
经典排序算法 - 冒泡排序Bubble sort相关推荐
- 排序算法——冒泡排序(Bubble Sort)
排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...
- 基础排序算法 – 冒泡排序Bubble sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束. 从小到大排序: 原 ...
- 十大经典排序算法-冒泡排序算法详解
十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...
- 经典排序算法 - 堆排序Heap sort
经典排序算法 - 堆排序Heap sort 堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 ...
- 经典排序算法 - 归并排序Merge sort
经典排序算法 - 归并排序Merge sort 原理,把原始数组分成若干子数组,对每一个子数组进行排序, 继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组 举例 无序数组[6 ...
- scratch之十大经典排序算法-冒泡排序法
十大经典排序算法简介 0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类 ...
- 经典排序算法----冒泡排序算法及其优化(稳定)
冒泡排序(稳定) 冒泡排序就是把小的元素往前调或者把大的元素往后调.比较是相邻的两个元素比较,交换也发生在这两个元素之间.所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的:如果两个相等的 ...
- [经典排序算法][集锦]
经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者 ...
- 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序
养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...
最新文章
- CUDA Samples: Image Process: BGR to Gray
- DSGN:基于深度立体几何网络的3D目标检测(香港大学提出)
- 监控程序崩溃重启_第十四章 Homeassistant服务器安全及状态监控(下)
- iPad的无纸化办公和纯纸化办公的区别和使用场景
- leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java)
- 阮一峰react demo代码研究的学习笔记 - how is h1 got parsed - not answer
- mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000
- nssl1148,jzoj5461-购物【可撤回贪心,堆】
- Python编程高手之路——第二章:流程控制
- leetcode 1184 python
- (19)Xilinx PCIE中断理论(学无止境)
- CMD发现一个得到字符串长度的方法
- windows平台下在Cygwin中运行Nutch1。2的抓取命令提示JAVA_HOME not set解决方案
- 用EXCEL来解决同期比较的问题
- 生活大爆炸第7季第6集Howard写给Bernadette的歌
- 管理感悟:把公司搞死,然后抱怨融资困难
- 如何使用PDF阅读器将PDF转换成图片
- NCH ClickCharts(流程图绘制软件)v4.10 汉化免费版
- 关联规则 置信度与支持度以及Apriori算法简介
- python爬虫的知识
热门文章
- Hyperledger Fabric 交易流程
- ajax 公共请求头部,ajax请求中全局增加请求头,如常见的token
- 学习java 的30个目标
- hdu5371(O(n)求回文子串的相关问题)
- Sperner定理及其证明
- abb变频器如何就地增加频率_abb变频器报接地故障如何处理,故障原因分析
- 计算机在气象上的应用浅论,简析计算机网络在气象服务中的应用原稿
- 点击延迟_300ms 延迟是什么,如何解决
- 台式电脑如何设置开机密码_网络安全小黑板|如何设置开机密码
- activiti7 和业务_上市公司区块链业务终于赚钱了!营收增长3886.03%