Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность - C#
Формулировка задачи:
Дан массив A размера N. Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность. Использовать метод «пузырьковой» сортировки (см. задание Array112), модифицировав его следующим образом: создать вспомогательный целочисленный массив номеров I, заполнив его числами от 1 до N; просматривать массив A, сравнивая пары элементов массива A с номерами I1 и I2, I2 и I3, … и меняя местами соответствующие элементы массива I, если левый элемент пары больше правого. Повторив описанную процедуру просмотра N – 1 раз, получим в массиве I требуемую последовательность номеров.
Решение задачи: «Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication27 { class Program { static int[] Input() { Console.WriteLine("Введите размерность массива"); int n = int.Parse(Console.ReadLine()); int[] a = new int[n]; for (int i = 0; i < n; ++i) { Console.Write("a[{0}]= ", i); a[i] = int.Parse(Console.ReadLine()); } return a; } static void Print(int[] a) { for (int i = 0; i < a.Length; ++i) Console.Write("{0} ", a[i]); Console.WriteLine(); } static void Main() { int buf, buf2; int[] t = Input(); int[] k = new int[t.Length]; for (int i = 0; i < t.Length; ++i) k[i] = i; Console.WriteLine("Исходный массив:"); Print(t); Console.WriteLine("Номера элементов, которые образуют возрастающую последовательность: "); for (int j = t.Length - 1; j > 0; --j) for (int i = 0; i < j; ++i) { if (t[i] > t[i+1]) { buf = t[i]; t[i] = t[i+1]; t[i + 1] = buf; buf2 = k[i]; k[i] = k[i + 1]; k[i + 1] = buf2; } } Print(k); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д