经典排序算法 - 冒泡排序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相关推荐

  1. 排序算法——冒泡排序(Bubble Sort)

    排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...

  2. 基础排序算法 – 冒泡排序Bubble sort

    原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束. 从小到大排序: 原 ...

  3. 十大经典排序算法-冒泡排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  4. 经典排序算法 - 堆排序Heap sort

    经典排序算法 - 堆排序Heap sort 堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 ...

  5. 经典排序算法 - 归并排序Merge sort

    经典排序算法 - 归并排序Merge sort 原理,把原始数组分成若干子数组,对每一个子数组进行排序, 继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组 举例 无序数组[6 ...

  6. scratch之十大经典排序算法-冒泡排序法

    十大经典排序算法简介 0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类 ...

  7. 经典排序算法----冒泡排序算法及其优化(稳定)

    冒泡排序(稳定) 冒泡排序就是把小的元素往前调或者把大的元素往后调.比较是相邻的两个元素比较,交换也发生在这两个元素之间.所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的:如果两个相等的 ...

  8. [经典排序算法][集锦]

    经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者 ...

  9. 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序

    养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...

最新文章

  1. CUDA Samples: Image Process: BGR to Gray
  2. DSGN:基于深度立体几何网络的3D目标检测(香港大学提出)
  3. 监控程序崩溃重启_第十四章 Homeassistant服务器安全及状态监控(下)
  4. iPad的无纸化办公和纯纸化办公的区别和使用场景
  5. leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java)
  6. 阮一峰react demo代码研究的学习笔记 - how is h1 got parsed - not answer
  7. mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000
  8. nssl1148,jzoj5461-购物【可撤回贪心,堆】
  9. Python编程高手之路——第二章:流程控制
  10. leetcode 1184 python
  11. (19)Xilinx PCIE中断理论(学无止境)
  12. CMD发现一个得到字符串长度的方法
  13. windows平台下在Cygwin中运行Nutch1。2的抓取命令提示JAVA_HOME not set解决方案
  14. 用EXCEL来解决同期比较的问题
  15. 生活大爆炸第7季第6集Howard写给Bernadette的歌
  16. 管理感悟:把公司搞死,然后抱怨融资困难
  17. 如何使用PDF阅读器将PDF转换成图片
  18. NCH ClickCharts(流程图绘制软件)v4.10 汉化免费版
  19. 关联规则 置信度与支持度以及Apriori算法简介
  20. python爬虫的知识

热门文章

  1. Hyperledger Fabric 交易流程
  2. ajax 公共请求头部,ajax请求中全局增加请求头,如常见的token
  3. 学习java 的30个目标
  4. hdu5371(O(n)求回文子串的相关问题)
  5. Sperner定理及其证明
  6. abb变频器如何就地增加频率_abb变频器报接地故障如何处理,故障原因分析
  7. 计算机在气象上的应用浅论,简析计算机网络在气象服务中的应用原稿
  8. 点击延迟_300ms 延迟是什么,如何解决
  9. 台式电脑如何设置开机密码_网络安全小黑板|如何设置开机密码
  10. activiti7 和业务_上市公司区块链业务终于赚钱了!营收增长3886.03%