码迷,mamicode.com
首页 > 编程语言 > 详细

C# 冒泡排序

时间:2018-02-03 17:53:55      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:图片   amp   简单   article   下标   http   art   依次   自己   

 

  话说都工作一年多了 连一个冒泡排序也写不出来是不是太尬了  要以后面试的时候让我写一个冒泡排序我写不出来 那我就只能在家里吃鸡了。好了言归正传 马上动手 百度冒泡排序 翻出了这篇文章

  已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[n]的值。这样处理一轮后,a[n]的值一定是这组数据中最大的。再对a[1]~a[n-1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的。再对a[1]~a[n-2]以相同方法处理一轮,以此类推。共处理n-1轮后a[1]、a[2]、……a[n]就以升序排列了。降序排列与升序排列相类似,若a[1]小于a[2]则交换两者的值,否则不变,后面以此类推。 总的来讲,每一轮排序后最大(或最小)的数将移动到数据序列的最后,理论上总共要进行n(n-1)/2次交换。

代码如下:

     /// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="arry">要排序的整数数组</param>
        public static void BubbleSort(this int[] arry)
        {
            for (int i = 0; i < arry.Length; i++)
            {
                for (int j = 0; j < arry.Length - 1 - i; j++)
                 {
                     //比较相邻的两个元素,如果前面的比后面的大,则交换位置
                     if (arry[j] > arry[j + 1])
                     {
                         int temp = arry[j + 1];
                         arry[j + 1] = arry[j];
                         arry[j] = temp;
                     }
                 }
             }
         }

内容引用:http://blog.csdn.net/sniper007/article/details/53080131

我:%¥%¥%¥#@#%#@#@& 

对于我们这些理解能力差的人来说这TM堪比天书啊。算了吧看代码

有点云里雾里的感觉 算了加注释一步一步的来吧

技术分享图片技术分享图片

看了这段代码后我有一个问题:

76 和 66 交换后 为什么 98 又和44交换

看了一会儿代码终于搞明白了

因为 交换后数组的改变了

arr[j + 1] = arr[j];
arr[j] = temp;

每次交换后数组也不相同了(我TM真想给自己两巴掌  这么简单的东西居然思考了那么久)

 

鼓动了半天 终于有点明白了

我的理解:

冒泡排序 第一次套嵌循环 找出数字最大的排到最后面
例如 int[] arr = { 23, 44, 76,66, 98, 11, 3, 9, 7 };
第一次套嵌循环 循环3次后 76 > 66 所以 76和66换顺序  现在的数组为
{ 23, 44, 66,76, 98, 11, 3, 9, 7 }
第四次循环 76<98 第五次循环 98 > 11 所以 98和11换顺序 现在的数组为
{ 23, 44, 66,76, 11, 98, 3, 9, 7 }
第六次套嵌循环
由于 98和11换顺序 所以 98现在的下标就是 第五次11的下标
所以还是 98 和 3比较 依次类推

 

 由于LZ的表达能力实在是太差 只能这样来解释LZ自己理解的东西 如果有误 还望各位大佬指点

 

C# 冒泡排序

标签:图片   amp   简单   article   下标   http   art   依次   自己   

原文地址:https://www.cnblogs.com/qs315/p/8409939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!