Задан массив и число х, вставить х в массив, не нарушив порядок - C#

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

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

Помогите решить задачу Задан массив А, упорядоченный по неубыванию, и число х. Вставить х в массив, не нарушив порядка.

Решение задачи: «Задан массив и число х, вставить х в массив, не нарушив порядок»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4.  
  5. class Program
  6. {
  7.     static unsafe void Main()
  8.     {
  9.         Random rnd = new Random();
  10.         int[] arr = Enumerable.Range(0, 25).Select(_ => rnd.Next(-10, 100)).ToArray();
  11.         int x = 55;
  12.  
  13.         Console.WriteLine(string.Join(" ", arr)); // наш массив
  14.         Console.WriteLine(string.Join(" ", arr.OrderBy(i=>i))); // чтобы увидеть куда была вставка, предварительная сортировка
  15.         var result = SortedAndInputXToArray(arr, x).Result; // наш ответ
  16.         Console.WriteLine(string.Join(" ", result));
  17.  
  18.         Console.ReadKey();
  19.     }
  20.     static unsafe Task<int[]> SortedAndInputXToArray(int[] arr, int x)
  21.     => Task.Run(() =>
  22.     {
  23.         arr = arr.OrderBy(i => i).ToArray();
  24.         fixed (int* n = arr)
  25.         {
  26.             int* tmp = n;
  27.             for (int i=0;i<arr.Length;i++)
  28.             {
  29.                 if(*tmp<x)
  30.                 {
  31.                     tmp++;
  32.                 }
  33.                 else
  34.                 {
  35.                     tmp--;
  36.                     *tmp = x;
  37.                     break;
  38.                 }
  39.                 if (i == arr.Length - 1)
  40.                     *tmp = x;
  41.             }
  42.         }
  43.         return arr;
  44.     });
  45. }

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


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

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

9   голосов , оценка 4.111 из 5

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

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

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