Поразрядная трехпутевая сортировка - 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 Test { 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("Массив до сортировки:"); foreach(double x in arr) { System.Console.Write(x + " "); } RadixSorting.sorting(arr, 10, 2); System.Console.WriteLine("\n\nМассив после сортировки:"); foreach(double x in arr) { System.Console.Write(x + " "); } System.Console.WriteLine("\n\nНажмите <Enter>"); System.Console.ReadLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д