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