File tree Expand file tree Collapse file tree 1 file changed +85
-0
lines changed Expand file tree Collapse file tree 1 file changed +85
-0
lines changed Original file line number Diff line number Diff line change 1+ import java .util .Scanner ;
2+
3+ class MergeSort {
4+ void merge (int arr [], int l , int m , int r )
5+ {
6+ int n1 = m - l + 1 ;
7+ int n2 = r - m ;
8+ int L [] = new int [n1 ];
9+ int R [] = new int [n2 ];
10+
11+ for (int i = 0 ; i < n1 ; ++i )
12+ L [i ] = arr [l + i ];
13+ for (int j = 0 ; j < n2 ; ++j )
14+ R [j ] = arr [m + 1 + j ];
15+
16+ int i = 0 , j = 0 ;
17+
18+ int k = l ;
19+ while (i < n1 && j < n2 ) {
20+ if (L [i ] <= R [j ]) {
21+ arr [k ] = L [i ];
22+ i ++;
23+ }
24+ else {
25+ arr [k ] = R [j ];
26+ j ++;
27+ }
28+ k ++;
29+ }
30+
31+ while (i < n1 ) {
32+ arr [k ] = L [i ];
33+ i ++;
34+ k ++;
35+ }
36+
37+ while (j < n2 ) {
38+ arr [k ] = R [j ];
39+ j ++;
40+ k ++;
41+ }
42+ }
43+
44+ void sort (int arr [], int l , int r )
45+ {
46+ if (l < r ) {
47+ int m = (l + r ) / 2 ;
48+
49+ sort (arr , l , m );
50+ sort (arr , m + 1 , r );
51+
52+ merge (arr , l , m , r );
53+ }
54+ }
55+
56+ static void printArray (int arr [])
57+ {
58+ int n = arr .length ;
59+ for (int i = 0 ; i < n ; ++i )
60+ System .out .print (arr [i ] + " " );
61+ System .out .println ();
62+ }
63+
64+ public static void main (String args [])
65+ {
66+ int n ;
67+ Scanner s = new Scanner (System .in );
68+ System .out .print ("Enter no. of elements you want in array:" );
69+ n = s .nextInt ();
70+ int arr [] = new int [n ];
71+ System .out .println ("Enter all the elements:" );
72+ for (int i = 0 ; i < n ; i ++)
73+ {
74+ arr [i ] = s .nextInt ();
75+ }
76+ System .out .println ("Given Array" );
77+ printArray (arr );
78+
79+ MergeSort ob = new MergeSort ();
80+ ob .sort (arr , 0 , arr .length - 1 );
81+
82+ System .out .println ("\n Sorted array" );
83+ printArray (arr );
84+ }
85+ }
You can’t perform that action at this time.
0 commit comments