Сортировать элементы массива (размера 10) с помощью поразрядной сортировки - C#

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

Сортировать элементы массива(размера 10) с помощью поразрядной сортировки, не писав методы и классы, т.е. всё сразу в Main

Код к задаче: «Сортировать элементы массива (размера 10) с помощью поразрядной сортировки - C#»

textual
Random random = new Random();
            int[] array = new int[10];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = random.Next(99);
                Console.Write("{0,3}", array[i]);
            }
 
            int range = 10, length = 2; //range - алфавит(10 цифр) length - максимальная длина одного числа
            ArrayList[] lists = new ArrayList[range]; 
            for (int i = 0; i < range; ++i) //Создаем пустые списки, количество которых равно числу range.
                lists[i] = new ArrayList();
 
            for (int step = 0; step < length; ++step) //проходимся по разрядам чисел
            {
                for (int i = 0; i < array.Length; ++i) //и раскидываем числа по спискам, в соответствии с рассматриваемым разрядом
                {
                    int temp = (array[i] % (int)Math.Pow(range, step + 1)) // выделяем из числа только текущий разряд
                                                  (int)Math.Pow(range, step);
                    lists[temp].Add(array[i]);
                }
                int k = 0;
                //и снова собираем числа из списков в массив
                for (int i = 0; i < range; ++i)
                {
                    for (int j = 0; j < lists[i].Count; ++j)
                    {
                        array[k++] = (int)lists[i][j];
                    }
                }
                //очистка списков
                for (int i = 0; i < range; ++i)
                    lists[i].Clear();
            }
            Console.WriteLine();
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write("{0,3}", array[i]);
            }
            
            Console.ReadKey();
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

13   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ