Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность - C#

Узнай цену своей работы

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

Дан массив A размера N. Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность. Использовать метод «пузырьковой» сортировки (см. задание Array112), модифицировав его следующим образом: создать вспомогательный целочисленный массив номеров I, заполнив его числами от 1 до N; просматривать массив A, сравнивая пары элементов массива A с номерами I1 и I2, I2 и I3, … и меняя местами соответствующие элементы массива I, если левый элемент пары больше правого. Повторив описанную процедуру просмотра N – 1 раз, получим в массиве I требуемую последовательность номеров.

Решение задачи: «Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication27
  8. {
  9.     class Program
  10.     {
  11.         static int[] Input()
  12.         {
  13.             Console.WriteLine("Введите размерность массива");
  14.             int n = int.Parse(Console.ReadLine());
  15.             int[] a = new int[n];
  16.             for (int i = 0; i < n; ++i)
  17.             {
  18.                 Console.Write("a[{0}]= ", i);
  19.                 a[i] = int.Parse(Console.ReadLine());
  20.             }
  21.             return a;
  22.         }
  23.  
  24.         static void Print(int[] a)
  25.         {
  26.             for (int i = 0; i < a.Length; ++i) Console.Write("{0} ", a[i]);
  27.             Console.WriteLine();
  28.         }
  29.  
  30.  
  31.         static void Main()
  32.         {
  33.             int buf, buf2;
  34.             int[] t = Input();
  35.             int[] k = new int[t.Length];
  36.             for (int i = 0; i < t.Length; ++i)
  37.                 k[i] = i;
  38.                 Console.WriteLine("Исходный массив:");
  39.             Print(t);
  40.             Console.WriteLine("Номера элементов, которые образуют возрастающую последовательность: ");
  41.             for (int j = t.Length - 1; j > 0; --j)
  42.                 for (int i = 0; i < j; ++i)
  43.                 {
  44.                     if (t[i] > t[i+1])
  45.                     {
  46.                         buf = t[i];
  47.                         t[i] = t[i+1];
  48.                         t[i + 1] = buf;
  49.                         buf2 = k[i];
  50.                         k[i] = k[i + 1];
  51.                         k[i + 1] = buf2;
  52.                     }
  53.                 }
  54.                 Print(k);
  55.         }
  56.  
  57.     }
  58. }

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


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

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

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы