Разместить элементы массива так, чтоб сначала шли все числа, большие данного числа, а потом – остальные - 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--; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д