I have created this simple program for sorting multidimensional Array :
- using System;
- namespace Multidimensional_array_sort
- {
- class Program
- {
- public static void Main(string[] args)
- {
- //
- Console.WriteLine();
- Console.WriteLine(" Hello World!");
- Console.WriteLine();
- //
- int [,] Array;
- //
- Console.Write(" Enter number of elements : n = ");
- //
- int n = int.Parse(Console.ReadLine());
- //
- Array = new int[n,4];
- //
- Console.WriteLine();
- Console.WriteLine(" Element data entry :");
- Console.WriteLine(" *********************");
- Console.WriteLine();
- //
- for(int i=0; i
- {
- Array[i,0]=i+1;
- Console.WriteLine(" " +(i+1).ToString() + ". element :");
- Console.WriteLine(" *********************");
- Console.Write(" length : ");
- Array[i,1]=int.Parse(Console.ReadLine());
- Console.Write(" width : ");
- Array[i,2]=int.Parse(Console.ReadLine());
- Array[i,3]=Array[i,1]*Array[i,2];
- Console.WriteLine(" *********************");
- Console.WriteLine();
- }
- //
- for(int k=0; k
1 ; k++) - {
- for(int j=k+1; j
- {
- if(Array[k,3]>Array[j,3]) goto next;
- if(Array[k,3]goto swap;
- if(Array[k,1]>Array[j,1]) goto next;
- if(Array[k,1]goto swap;
- if(Array[k,2]>Array[j,2]) goto next;
- if(Array[k,2]goto swap;
- if(Array[k,0]goto next;
- if(Array[k,0]>Array[j,0]) goto swap;
- swap:
- {
- int m = Array[j,0];
- Array[j,0]=Array[k,0];
- Array[k,0]=m;
- m = Array[j,1];
- Array[j,1]=Array[k,1];
- Array[k,1]=m;
- m = Array[j,2];
- Array[j,2]=Array[k,2];
- Array[k,2]=m;
- m = Array[j,3];
- Array[j,3]=Array[k,3];
- Array[k,3]=m;
- }
- next:
- {
- }
- }
- }
- //
- // Show sorted array
- // element index, element entry index, value a, value b, value c
- //
- Console.WriteLine();
- Console.WriteLine(" Sorted array :");
- Console.WriteLine(" *******************************");
- for(int i=0; i
- {
- Console.WriteLine("{0,3}{1,3}{2,5}{3,5}{4,12}",
- (i+1),
- Array[i,0],
- Array[i,1],
- Array[i,2],
- Array[i,3]);
- }
- Console.WriteLine(" *******************************");
- Console.WriteLine();
- Console.Write(" Press any key to continue . . . ");
- Console.ReadKey(true);
- }
- }
- }
Array example :
**************************************************************************
element element element elementindex value 1 value 2 value 1 * value 2
1 50 400 20000
2 100 100 10000
3 100 100 10000
4 50 200 10000
5 200 50 10000
6 400 50 20000
7 400 50 20000
**************************************************************************
Sorted Array
by column 4
then by column 2
then by column 3
then by column 1
in descending sort order :
*************************************************************************
element element element element
index value 1 value 2 value 1 * value 2
6 400 50 20000
7 400 50 20000
1 50 400 20000
5 200 50 10000
2 100 100 10000
3 100 100 10000
4 50 200 10000
*************************************************************************
Program works fine but I need sugestions for code optimization. I would prefer program code without GOTO statements. Perhaps there is different algorithm for this kind of array sort.
All the best,
Željko Peric

Laxmidhar SahooPosted Oct 6, 2018, 2:07 AM