Поразрядная сортировка MSD в C#

Узнай цену своей работы

Формулировка задачи:

Можете написать код поразрядной сортировки MSD в C#

Решение задачи: «Поразрядная сортировка MSD в C#»

textual
Листинг программы
class RadixSorting {
   public static void sorting(int[] arr, int range, int length) {
      ArrayList[] lists = new ArrayList[range];
      for(int i = 0; i < range; ++i)
         lists[i] = new ArrayList();
              
      for(int step = 0; step < length; ++step) {
         //распределение по спискам
         for(int i = 0; i < arr.Length; ++i) {
            int temp = (arr[i] % (int)Math.Pow(range, step + 1)) /
                                          (int)Math.Pow(range, step);
            lists[temp].Add(arr[i]);
         }
         //сборка
         int k = 0;
         for(int i = 0; i < range; ++i) {
            for(int j = 0; j < lists[i].Count; ++j) {
               arr[k++] = (int)lists[i][j];
            }
         }
         for(int i = 0; i < range; ++i)
            lists[i].Clear();
      }
   }
}
class Program {
   static void Main(string[] args) {
      int[] arr = new int[100];
     
      Random rd = new Random();
      for(int i = 0; i < arr.Length; ++i) {
         arr[i] = rd.Next(0, 100);
      }
 
      System.Console.WriteLine("The array before sorting:");
      foreach(double x in arr) {
         System.Console.Write(x + " ");
      }
 
      RadixSorting.sorting(arr, 10, 2);
      System.Console.WriteLine("\n\nThe array after sorting:");
 
      foreach(double x in arr) {
         System.Console.Write(x + " ");
      }
 
      System.Console.WriteLine("\n\nPress the <Enter> key");
      System.Console.ReadLine();
   }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5