private static void MergeArrays(CList head) { var currentList = new CList(); currentList.Next = head; head = currentList; for (int i = 0; i < NumberOfArrays * ArraysLength; i++) { currentList = head; var minElementList = head; while (currentList.Next != null) { var k1 = currentList.Next.Data[currentList.Next.Point]; var k2 = minElementList.Next.Data[minElementList.Next.Point]; if (k1.Key < k2.Key) { minElementList = currentList; } currentList = currentList.Next; } Console.WriteLine(minElementList.Next.Data[minElementList.Next.Point].Key); if (minElementList.Next.Data.Length - 1 == minElementList.Next.Point) { var q = minElementList.Next; minElementList.Next = minElementList.Next.Next; } else { minElementList.Next.Point++; } } }
private static void MergeArrays(CList head) { var currentList = new CList(); currentList.Next = head; head = currentList; for (int i = 0; i < NumberOfArrays * ArraysLength; i++) { currentList = head; var minElementList = head; while (currentList.Next != null) { var k1 = currentList.Next.Data[currentList.Next.Point]; var k2 = minElementList.Next.Data[minElementList.Next.Point]; if (k1.Key < k2.Key) { minElementList = currentList; } currentList = currentList.Next; } Console.WriteLine(minElementList.Next.Data[minElementList.Next.Point].Key); if (minElementList.Next.Data.Length - 1 == minElementList.Next.Point) { minElementList.Next = minElementList.Next.Next; } else { minElementList.Next.Point++; } } }
static void PrintArrays(CList list) { while (list != null) { foreach (var element in list.Data) { Console.Write("{0} ", element.Key); } Console.WriteLine(); list = list.Next; } }
private static void PrintArrays(CList list) { while (list != null) { foreach (var element in list.Data) { Console.Write("{0} ", element.Key); } Console.WriteLine(); list = list.Next; } }
static CList InitializeArray(int modul) { CList head = null; for (int i = 0; i < NumberOfArrays; i++) { var currentList = new CList(); currentList.Length = NumberOfArrays; currentList.Point = 0; currentList.Data = new Element[ArraysLength]; currentList.Data[0].Key = rand.Next() % modul; for (int j = 1; j < ArraysLength; j++) currentList.Data[j].Key = currentList.Data[j - 1].Key + rand.Next() % modul; currentList.Next = head; head = currentList; } return head; }
static CList InitializeArray(int modul) { CList head = null; for (int i = 0; i < NumberOfArrays; i++) { var currentList = new CList(); currentList.Length = NumberOfArrays; currentList.Point = 0; currentList.Data = new Element[ArraysLength]; currentList.Data[0].Key = rand.Next() % modul; for (int j = 1; j < ArraysLength; j++) { currentList.Data[j].Key = currentList.Data[j - 1].Key + rand.Next() % modul; } currentList.Next = head; head = currentList; } return(head); }