Задан массив и число х, вставить х в массив, не нарушив порядок - C#
Формулировка задачи:
Помогите решить задачу
Задан массив А, упорядоченный по неубыванию, и число х. Вставить х в массив, не нарушив порядка.
Решение задачи: «Задан массив и число х, вставить х в массив, не нарушив порядок»
textual
Листинг программы
using System;
using System.Linq;
using System.Threading.Tasks;
class Program
{
static unsafe void Main()
{
Random rnd = new Random();
int[] arr = Enumerable.Range(0, 25).Select(_ => rnd.Next(-10, 100)).ToArray();
int x = 55;
Console.WriteLine(string.Join(" ", arr)); // наш массив
Console.WriteLine(string.Join(" ", arr.OrderBy(i=>i))); // чтобы увидеть куда была вставка, предварительная сортировка
var result = SortedAndInputXToArray(arr, x).Result; // наш ответ
Console.WriteLine(string.Join(" ", result));
Console.ReadKey();
}
static unsafe Task<int[]> SortedAndInputXToArray(int[] arr, int x)
=> Task.Run(() =>
{
arr = arr.OrderBy(i => i).ToArray();
fixed (int* n = arr)
{
int* tmp = n;
for (int i=0;i<arr.Length;i++)
{
if(*tmp<x)
{
tmp++;
}
else
{
tmp--;
*tmp = x;
break;
}
if (i == arr.Length - 1)
*tmp = x;
}
}
return arr;
});
}