中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用幾種常用排序方法對C#數組進行排序的代碼

發布時間:2020-07-15 06:02:04 來源:網絡 閱讀:418 作者:redsunn 欄目:移動開發

工作之余,把寫代碼過程中比較重要的一些代碼段收藏起來,如下的代碼是關于使用幾種常用排序方法對C#數組進行排序的代碼,希望能對各朋友有幫助。

 using System;

   namespace DataStruct
   {
       public class Sorter
       {
          public static void BubbleSort(int[] list)
          {
              for (int i = 0; i < list.Length; i++)
              {
                  for (int j = i; j < list.Length; j++)
                  {
                      if (list[i] < list[j])
                      {
                         int temp = list[i];
                         list[i] = list[j];
                         list[j] = temp;
                     }
                 }
             }
         }

         public static void InsertionSort(int[] list)
         {
             for (int i = 1; i < list.Length; i++)
              {
                 int t = list[i];
                 int j = i;
                 while ((j > 0) && (list[j - 1] > t))
                 {
                     list[j] = list[j - 1];
                     --j;
                 }
                 list[j] = t;
             }
         }

         public static void SelectionSort(int[] list)
         {
             int min;
             for (int i = 0; i < list.Length - 1; i++)
             {
                 min = i;
                 for (int j = i + 1; j < list.Length; j++)
                 {
                     if (list[j] < list[min])
                         min = j;
                 }
                 int t = list[min];
                 list[min] = list[i];
                 list[i] = t;
             }
         }

        public static void ShellSort(int[] list)
        {
             int inc;
             for (; inc > 0; inc /= 3)
             {
                 for (int i = inc + 1; i <= list.Length; i += inc)
                 {
                     int t = list[i - 1];
                     int j = i;
                     while ((j > inc) && (list[j - inc - 1] > t))
                     {
                         list[j - 1] = list[j - inc - 1];
                         j -= inc;
                     }
                     list[j - 1] = t;
                 }
             }
         }

         private static void Swap(ref int l, ref int r)
         {
             int s;
             s = l;
             l = r;
             r = s;
         }

         public static void Sort(int[] list, int low, int high)
         {
             int pivot;
             int l, r;
             int mid;
             if (high <= low)
                 return;
             else if (high == low + 1)
             {
                 if (list[low] > list[high])
                     Swap(ref list[low], ref list[high]);
                 return;
             }
             mid = (low + high) >> 1;
             pivot = list[mid];
             Swap(ref list[low], ref list[mid]);
             l = low + 1;
             r = high;
             do
             {
                 while (l <= r && list[l] < pivot)
                     l++;
                 while (list[r] >= pivot)
                     r--;
                 if (l < r)
                     Swap(ref list[l], ref list[r]);
             } while (l < r);
             list[low] = list[r];
             list[r] = pivot;
             if (low + 1 < r)
                 Sort(list, low, r - 1);
             if (r + 1 < high)
                 Sort(list, r + 1, high);
         }
     }
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 宜春市| 合川市| 阳春市| 武威市| 拉萨市| 嘉禾县| 嘉定区| 潞西市| 中江县| 密云县| 龙里县| 广灵县| 龙陵县| 嘉义市| 化隆| 秀山| 泰顺县| 禄丰县| 萨迦县| 嵩明县| 日土县| 梧州市| 咸阳市| 江口县| 眉山市| 获嘉县| 上饶县| 和林格尔县| 济源市| 铁岭市| 罗源县| 中卫市| 乐陵市| 河西区| 孝昌县| 本溪市| 镇远县| 来安县| 囊谦县| 鄢陵县|