Требуется расположить неотрицательные элементы матрицы в порядке убывания. Использовать алгоритм вставки - C#
Формулировка задачи:
Дан массив x1, x2,..., x20. Требуется расположить неотрицательные элементы в порядке убывания. Использовать алгоритм вставки
Решение задачи: «Требуется расположить неотрицательные элементы матрицы в порядке убывания. Использовать алгоритм вставки»
textual
Листинг программы
using System;
namespace Console1
{
class Program
{
static void PrintArr(int[] a)
{
foreach (int i in a) Console.Write("{0}\t", i);
Console.WriteLine();
}
static void SortBlahBlah(int[] a)
{
int left = 0;
while (left < a.Length && a[left] < 0) left++;
if (left == a.Length) return;
for (int i = left + 1; i < a.Length; i++)
{
if (a[i] >= 0)
{
int idx = i;
int tmp = a[i];
for (int j = i - 1; j >= left && a[j] < tmp; j--)
{
if (a[j] >= 0)
{
a[idx] = a[j];
idx = j;
}
}
a[idx] = tmp;
}
}
}
static void Main()
{
int[] arr = new int[7]; // У вас [20]
Random rnd = new Random();
for (int i = 0; i < arr.Length; arr[i++] = rnd.Next(-9, 10)) ;
PrintArr(arr);
SortBlahBlah(arr);
PrintArr(arr);
}
}
}