Одномерные массивы: сортировка слиянием и поиск линейным алгоритмом - C#
Формулировка задачи:
Задание такое: создать 2 одномерных массива (по 15000 элементов в каждом), после чего отсортировать его его методом слияния. Потом запихать отсортированные массивы в 3-ий массив. И с помощью линейного алгоритма, найти элементы, присутствующие в обоих массивах.
Эм, я уже отчаялся, что я только не пробовал - не выходит. Помогите кто чем сможет, буду очень признателен.
Решение задачи: «Одномерные массивы: сортировка слиянием и поиск линейным алгоритмом»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _1_laba { class Program { static void Main(string[] args) { Random rnd = new Random(); int[] A = Createmass(16, 0, 10, rnd); int[] B = Createmass(16, 0, 10, rnd); printMass(A); printMass(B); int[]F=AandB(A,B); // printMass(F); int[] G = F.Distinct().ToArray(); printMass(G); Console.ReadKey(); } public static int[] Createmass(int lan, int min, int max, Random rnd) { int[] work = new int[lan]; for (int i = 0; i < lan; i++) { work[i] = rnd.Next(min, max); } return work; } //-----------------------печать массива public static void printMass(int[] W) { for (int i = 0; i < W.Length; i++) { Console.Write("{0}", W[i]); } Console.WriteLine(); } public static int[] AandB(int[] C, int[] D) { int [] V = new int[C.Length]; int K = 0; for (int i = 0; i < (int)(D.Length / 2); i++) { for (int j = 0; j < C.Length; j++) { if (D[i] == C[j]) { V[K] = C[j]; K++; } } } //слияние 2 часть int[] V_1 = new int[C.Length]; int K_1 = 0; for (int i = (int)(D.Length / 2); i < D.Length; i++) { for (int j = 0; j < C.Length; j++) { if (D[i] == C[j]) { V_1[K_1] = C[j]; K_1++; } } } //--- int[] O = new int[K + K_1]; for (int i = 0; i < K; i++) { O[i] =V[i] ; } int p = 0; for (int i = K; i < O.Length; i++) { O[i] = V_1[p]; p++; } return O; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д