Разместить элементы массива так, чтоб сначала шли все числа, большие данного числа, а потом – остальные - 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--;
}

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы