Одномерные массивы: сортировка слиянием и поиск линейным алгоритмом - C#

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

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

Задание такое: создать 2 одномерных массива (по 15000 элементов в каждом), после чего отсортировать его его методом слияния. Потом запихать отсортированные массивы в 3-ий массив. И с помощью линейного алгоритма, найти элементы, присутствующие в обоих массивах. Эм, я уже отчаялся, что я только не пробовал - не выходит. Помогите кто чем сможет, буду очень признателен.

Решение задачи: «Одномерные массивы: сортировка слиянием и поиск линейным алгоритмом»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace _1_laba
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Random rnd = new Random();
  13.             int[] A = Createmass(16, 0, 10, rnd);
  14.             int[] B = Createmass(16, 0, 10, rnd);
  15.             printMass(A);
  16.             printMass(B);
  17.             int[]F=AandB(A,B);
  18.            // printMass(F);
  19.             int[] G = F.Distinct().ToArray();
  20.             printMass(G);
  21.             Console.ReadKey();
  22.         }
  23.  
  24.  
  25.         public static int[] Createmass(int lan, int min, int max, Random rnd)
  26.         {
  27.             int[] work = new int[lan];
  28.             for (int i = 0; i < lan; i++)
  29.             {
  30.                 work[i] = rnd.Next(min, max);
  31.             }
  32.             return work;
  33.         }
  34.  
  35.  
  36.         //-----------------------печать массива
  37.         public static void printMass(int[] W)
  38.         {
  39.             for (int i = 0; i < W.Length; i++)
  40.             {
  41.                 Console.Write("{0}", W[i]);
  42.             }
  43.             Console.WriteLine();
  44.         }
  45.         public static int[] AandB(int[] C, int[] D)
  46.         {
  47.            int [] V = new int[C.Length];
  48.             int K = 0;
  49.             for (int i = 0; i < (int)(D.Length / 2); i++)
  50.             {
  51.                 for (int j = 0; j < C.Length; j++)
  52.                 {
  53.  
  54.                     if (D[i] == C[j])
  55.                     {
  56.                         V[K] = C[j];
  57.                         K++;
  58.                     }
  59.                      
  60.                  }
  61.             }
  62.             //слияние 2 часть
  63.             int[] V_1 = new int[C.Length];
  64.             int K_1 = 0;
  65.  
  66.             for (int i = (int)(D.Length / 2); i < D.Length; i++)
  67.             {
  68.                
  69.                     for (int j = 0; j < C.Length; j++)
  70.                     {
  71.  
  72.                         if (D[i] == C[j])
  73.                         {
  74.                             V_1[K_1] = C[j];
  75.                             K_1++;
  76.                         }
  77.  
  78.                     }
  79.                  
  80.  
  81.  
  82.             }
  83.             //---
  84.             int[] O = new int[K + K_1];
  85.             for (int i = 0; i < K; i++)
  86.             {
  87.                 O[i] =V[i] ;
  88.  
  89.             }
  90.             int p = 0;
  91.             for (int i = K; i < O.Length; i++)
  92.             {
  93.                 O[i] = V_1[p];
  94.                 p++;
  95.                
  96.                
  97.             }
  98.  
  99.  
  100.  
  101.             return O;
  102.        
  103.         }
  104.  
  105.     }
  106. }

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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