1- // Sir this is merge sort time complexity to sort is O(nlogn)
1+ /*
2+ question -
3+ Take 10 numbers as input from the user and sort it
4+ */
25
36import java .util .*;
47class Main
58{
6- void merge (int arr [], int l , int m , int r )
9+ void merge (int a [], int l , int m , int r ) // merging the splited sorted arrays
710 {
8- int n1 = m - l + 1 ;
9- int n2 = r - m ;
11+ int n1 = m - l + 1 , n2 = r - m ;
1012
1113 int L [] = new int [n1 ];
1214 int R [] = new int [n2 ];
1315
1416 for (int i = 0 ; i < n1 ; ++i )
15- L [i ] = arr [l + i ];
17+ L [i ] = a [l + i ];
1618 for (int j = 0 ; j < n2 ; ++j )
17- R [j ] = arr [m + 1 + j ];
19+ R [j ] = a [m + 1 + j ];
1820
1921 int i = 0 , j = 0 ;
2022 int k = l ;
2123 while (i < n1 && j < n2 ) {
2224 if (L [i ] <= R [j ]) {
23- arr [k ] = L [i ];
24- i ++;
25+ a [k ++] = L [i ++];
2526 }
2627 else {
27- arr [k ] = R [j ];
28- j ++;
28+ a [k ++] = R [j ++];
2929 }
30- k ++;
3130 }
3231 while (i < n1 ) {
33- arr [k ] = L [i ];
34- i ++;
35- k ++;
32+ a [k ++] = L [i ++];
3633 }
3734 while (j < n2 ) {
38- arr [k ] = R [j ];
39- j ++;
40- k ++;
35+ a [k ++] = R [j ++];
4136 }
4237 }
43- void sort (int arr [], int l , int r )
38+ void sort (int arr [], int l , int r ) // dividing the array then merging sorted arrays
4439 {
4540 if (l < r ) {
4641 int m =l + (r -l )/2 ;
@@ -49,13 +44,6 @@ void sort(int arr[], int l, int r)
4944 merge (arr , l , m , r );
5045 }
5146 }
52- static void printArray (int arr [])
53- {
54- int n = arr .length ;
55- for (int i = 0 ; i < n ; ++i )
56- System .out .print (arr [i ] + " " );
57- System .out .println ();
58- }
5947 public static void main (String args [])
6048 {
6149 Scanner sc = new Scanner (System .in );
@@ -65,13 +53,13 @@ public static void main(String args[])
6553 {
6654 arr [i ]=sc .nextInt ();
6755 }
68- System .out .println ("Given Array" );
69- printArray (arr );
70-
7156 Main ob = new Main ();
7257 ob .sort (arr , 0 , arr .length - 1 );
7358
7459 System .out .println ("\n Sorted array" );
75- printArray (arr );
60+ int n = arr .length ;
61+ for (int i = 0 ; i < n ; ++i )
62+ System .out .print (arr [i ] + " " );
63+ System .out .println ();
7664 }
7765}
0 commit comments