-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmergerSort.java
More file actions
executable file
·96 lines (71 loc) · 2.38 KB
/
mergerSort.java
File metadata and controls
executable file
·96 lines (71 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package mergerSort;
import java.util.Scanner;
public class mergerSort {
private int[] temparray;
public static void main(String a[]){
Scanner in=new Scanner(System.in);
int[] array=new int[5];
System.out.print("Enter number :" );
for (int i=0;i<5;i++)
array[i]=in.nextInt();
mergerSort mms = new mergerSort();
mms.sort(array);
System.out.println("Merge Sort:");
for (int i=0;i<5;i++){
while(array[i]==0)
i++;
System.out.println(array[i]);
}
}
public void sort(int array[]) {
this.temparray=new int[5];
exeMergeSort(0, 4, array);
}
public void exeMergeSort(int lowerIndex, int higherIndex, int array[]) {
if (lowerIndex < higherIndex) {
int middle = lowerIndex + (higherIndex - lowerIndex) / 2;
exeMergeSort(lowerIndex, middle, array);
exeMergeSort(middle + 1, higherIndex, array);
mergeParts(lowerIndex, middle, higherIndex, array);
}
}
public void mergeParts(int lowerIndex, int middle, int higherIndex, int array[]) {
for (int i = lowerIndex; i <= higherIndex; i++) {
temparray[i] = array[i];
}
int c1, c2;
int i = lowerIndex;
int j = middle + 1;
int k = lowerIndex;
while (i <= middle && j <= higherIndex) {
if (temparray[i] < temparray[j])
{
if(temparray[i] == temparray[j] )
{
c1=temparray[j+1];
temparray[j+1] = temparray[i];
temparray[i]=c1;
}
array[k] = temparray[i];
i++;
}
else
{
/*if(temparray[i] == temparray[j] )
{
c1=temparray[i+1];
temparray[i+1] = temparray[j];
temparray[j]=c1;
} */
array[k] = temparray[j];
j++;
}
k++;
}
while (i <= middle) {
array[k] = temparray[i];
k++;
i++;
}
}
}