Разместить элементы массива так, чтоб сначала шли все числа, большие данного числа, а потом – остальные - C#
Формулировка задачи:
Доброго вечера
Помогите, пожалуйста, код дописать
Листинг программы
- //Дан массив целых чисел. Не используя нового массива, разместить элементы массива так,
- //чтоб сначала шли все числа, большие данного числа, а потом – остальные.
- int i, n,x;
- Console.WriteLine("Введите число, которое будет минималным для массива");
- x = Int32.Parse(Console.ReadLine());
- Console.WriteLine("Введите размер массива целых чисел");
- n = Int32.Parse(Console.ReadLine());
- int[] mas = new int[n];
- for (i = 0; i < n; i++)
- {
- Console.WriteLine("Введите " + i + " элемент массива");
- mas[i] = Int32.Parse(Console.ReadLine());
- }
- Console.WriteLine("Содержимое массива после сортировки: ");
- for (i = 0; i < n; i++)
- {
- if (mas[i] > x)
- {
- Console.Write("{0} ", mas[i]);
- }
- }
Я написал, чтобы выводились только элементы, большие указанного. А как вывести сначала большие элементы, а потом все остальные ? При этом нельзя новый массив создавать
Решение задачи: «Разместить элементы массива так, чтоб сначала шли все числа, большие данного числа, а потом – остальные»
textual
Листинг программы
- int i = 0, j = mas.Length - 1;
- while (i < j)
- {
- if (mas[i] > x) i++;
- else if (mas[j] > x)
- {
- var t = mas[i];
- mas[i++] = mas[j];
- mas[j] = t;
- }
- else j--;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д