vlambda博客
学习文章列表

C#排序算法——冒泡排序

This browser does not support music or audio playback. Please play it in Weixin or another browser.

“定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。


——前言:

    冒泡排序可以说是最简单的一种排序算法了,核心思想就是通过相邻元素的比较和交换来实现排序。比如6,1,8,2这四个数来排序,首先6和1来比较,6>1把6交换到右边,同理6<8,8本身就在右边不用替换,之后8>2把8交换到右边,重复直至排序完成。

动图演示:


01

Code

下面使用C#代码进行实现:

/// <summary>/// 冒泡排序,从小到大/// </summary>private void MaoPaoSort(List<int> Nums){ //循环nums数组,每循环一遍,就能排好一个数 for (int i = 0; i < Nums.Count; i++) { //i代表已经排好的数,所以减去。因为在下面中j与j+1比较,所以还要减1 for (int j = 0; j < Nums.Count-1-i; j++) { //若左边的数大于右边的数则交换 if (Nums[j] > Nums[j + 1]) { Swap(Nums, j, j + 1); } } }}/// <summary>/// 交换数据/// </summary>private void Swap(List<int> Nums,int index1, int index2){ int temp = Nums[index1]; Nums[index1] = Nums[index2]; Nums[index2] = temp;}





END



感谢阅读


你知道的越多,你不知道的越多

我是EAST

一个靠互联网苟且偷生的程序员

咱们下期见!




扫描二维码关注我吧




庚子年冲冲冲 发起了一个读者讨论 留言区