File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ // Sir this is merge sort time complexity to sort is O(nlogn)
2+
3+ import java .util .*;
4+ class MergeSort
5+ {
6+ void merge (int arr [], int l , int m , int r )
7+ {
8+ int n1 = m - l + 1 ;
9+ int n2 = r - m ;
10+
11+ int L [] = new int [n1 ];
12+ int R [] = new int [n2 ];
13+
14+ for (int i = 0 ; i < n1 ; ++i )
15+ L [i ] = arr [l + i ];
16+ for (int j = 0 ; j < n2 ; ++j )
17+ R [j ] = arr [m + 1 + j ];
18+
19+ int i = 0 , j = 0 ;
20+ int k = l ;
21+ while (i < n1 && j < n2 ) {
22+ if (L [i ] <= R [j ]) {
23+ arr [k ] = L [i ];
24+ i ++;
25+ }
26+ else {
27+ arr [k ] = R [j ];
28+ j ++;
29+ }
30+ k ++;
31+ }
32+ while (i < n1 ) {
33+ arr [k ] = L [i ];
34+ i ++;
35+ k ++;
36+ }
37+ while (j < n2 ) {
38+ arr [k ] = R [j ];
39+ j ++;
40+ k ++;
41+ }
42+ }
43+ void sort (int arr [], int l , int r )
44+ {
45+ if (l < r ) {
46+ int m =l + (r -l )/2 ;
47+ sort (arr , l , m );
48+ sort (arr , m + 1 , r );
49+ merge (arr , l , m , r );
50+ }
51+ }
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+ }
59+ public static void main (String args [])
60+ {
61+ Scanner sc = new Scanner (System .in );
62+ int arr [] = new int [10 ];
63+ System .out .print ("Enter ten numbers for the array" );
64+ for (int i =0 ; i <10 ; i ++)
65+ {
66+ array [i ]=sc .nextInt ();
67+ }
68+ System .out .println ("Given Array" );
69+ printArray (arr );
70+
71+ MergeSort ob = new MergeSort ();
72+ ob .sort (arr , 0 , arr .length - 1 );
73+
74+ System .out .println ("\n Sorted array" );
75+ printArray (arr );
76+ }
77+ }
You can’t perform that action at this time.
0 commit comments