Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- //External Merge Sort
- static int[] F = { 75, 55, 15, 20, 85, 30, 35, 10, 60, 40, 50, 25, 45, 80, 70, 65 };
- //static int[] F = { 0, 55, 15, 20, 85, 30, 35, 10, 9, 40, 125, 45, 80, 6, 65 };
- static int[] F1 = new int[F.Length];
- static int[] F2 = new int[F.Length];
- static void Main(string[] args)
- {
- Console.Write("F = ");
- foreach(var item in F)
- {
- Console.Write(item+" ");
- }
- F1[0] = F[0];
- split(F1, F2, 1, 0, F, 1);
- Console.WriteLine("----------------------Sorted-------------------");
- foreach(var item in F)
- {
- Console.WriteLine(item+" ");
- }
- Console.WriteLine("\n"+ "------------------------------------------");
- }
- static void split(int []F1,int[] F2,int F1_index,int F2_index, int[] F ,int F_index)
- {
- if(F_index < F.Length)
- {
- if(F1[F1_index - 1] < F[F_index])
- {
- F1[F1_index] = F[F_index];
- split(F1, F2, F1_index + 1, F2_index, F, F_index + 1);
- }
- else
- {
- F2[F2_index] = F[F_index];
- split(F2, F1, F2_index + 1, F1_index, F, F_index + 1);
- }
- }
- else
- {
- Console.WriteLine("\n"+"------------------Split--------------");
- Console.WriteLine("F1 = ");
- foreach(var item in F1)
- {
- Console.Write(item + " ");
- }
- Console.Write("\n" + "F2 = ");
- foreach(var item in F2)
- {
- Console.WriteLine(item + " ");
- }
- Console.WriteLine("\n"+"---------------------------------------");
- merge(F1_index, F2_index, F1, F2);
- }
- }
- static void merge(int F1_index,int F2_index,int [] F1,int [] F2)
- {
- if(F2_index != 0)
- {
- int j = 0;
- int k = 0;
- for (int i = 0; i < F.Length; i++)
- {
- if(F1[j] < F2[k])
- {
- if(j < F1_index)
- {
- F[i] = F1[j];
- j = j + 1;
- }
- else
- {
- F[i] = F2[k];
- k = k + 1;
- }
- }
- else
- {
- if (k < F2_index)
- {
- F[i] = F2[k];
- k = k + 1;
- }
- else
- {
- F[i] = F1[j];
- j = j + 1;
- }
- }
- }
- for (int i = 0; i < F1.Length; i++)
- {
- F1[i] = 0;
- F2[i] = 0;
- }
- Console.WriteLine("\n" + "----------------------------------Merge------------");
- Console.Write("F = ");
- foreach(var item in F)
- {
- Console.Write(item + " ");
- }
- Console.WriteLine("\n"+"---------------------------------------------------------");
- F1[0] = F[0];
- split(F1, F2, 1, 0, F, 1);
- }
- }
- }
Add Comment
Please, Sign In to add comment