c#算法之冒泡排序

做.net4年,连冒泡我都还没有搞清楚,每次面试我都是默默的记下代码,里面的原理一直没有搞清楚,现在我终于清楚是怎么回事了!

例:List<int> list={1,2,9,3,7,8,5,6}; 把这个数组里面的数从小到大进行排序。

思路:依次进行排序:第一次{1,2,3,7,8,5,6,9};第二次{1,2,3,7,5,6,8,9};第三次{1,2,3,5,6,7,8,9}

           int[] list = { 1, 2, 9, 3, 7, 8, 5, 6 };
              for(int i=0;i<list.Length-1;i++)  //list.length-1是因为长度都是从1开始算起,而索引的下标都是从0开始的,所以要length-1
          {

              for (int j = 0; j < list.Length - 1 - i; j++)//子循环里面list.Length - 1 - i 是因为每次循环完,最后i个数是固定的,不用交换位置排序,所以- i
              {
                  if (list[j] > list[j + 1])//list[j]>list[j+1] 是从小到大进行排序,list[j]<list[j+1] 是从大到小进行排序
                  {
                      int temp = list[j];
                      list[j] = list[j + 1];
                      list[j + 1] = temp;
                  }
              }

          }
              foreach (var item in list)
              {
                  Console.WriteLine(item);
              }

     终于靠自己完全理解了,,,如果写的不好,麻烦不要介意,欢迎指出,第一次写博客还是满紧张和兴奋的。

posted @ 2020-06-01 17:42  Eudora_荣  阅读(28)  评论(0)    收藏  举报