-
Notifications
You must be signed in to change notification settings - Fork 0
/
twof.java
109 lines (102 loc) · 3.27 KB
/
twof.java
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
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.text.ParseException;
import java.util.concurrent.TimeUnit;
import java.io.*;
import java.util.*;
class twof{
public static char[] insertion(char[] str){
for(int i=0;i<str.length;i++){
char key=str[i];
int j=i-1;
while(j>=0 && key<str[j]){
str[j+1]=str[j];
j--;
}
str[j+1]=key;
}
return str;
}
public static char[] mergesort(char[] str,int low,int high){
if(low==high){
char[] bans={str[low]};
return bans;
}
int mid =(low+high)/2;
char[] left=mergesort(str,low,mid);
char[] right=mergesort(str,mid+1,high);
char[] ans=merge(left,right);
return ans;
}
public static char[] merge(char[] left,char[] right){
int i=0;
int j=0;
int k=0;
char[] mans=new char[left.length+right.length];
while(i<left.length && j<right.length){
char a=left[i];
char b=right[j];
if(a<b){
mans[k]=left[i];
i++;
k++;
}else{
mans[k]=right[j];
j++;
k++;
}
}
while(i<left.length){
mans[k]=left[i];
i++;
k++;
}
while(j<right.length){
mans[k]=right[j];
j++;
k++;
}
return mans;
}
public static void main(String[] args)throws IOException,ParseException{
FileReader fr=new FileReader("input2.txt");
int i;
String ques="";
while((i=fr.read())!=-1){
ques+=(char)i;
}
char [] mques=new char[ques.length()];
for(int k=0;k<mques.length;k++){
mques[k]=ques.charAt(k);
}
long startTime = System.currentTimeMillis();
char[] mans=mergesort(mques,0,ques.length()-1); //Measure execution time for this method
long endTime = System.currentTimeMillis();
long duration = (endTime - startTime); //Total execution time in milli seconds
System.out.println("mergesort "+duration);
String fans="";
for(int k=0;k<mans.length;k++){
fans+=mans[k];
}
FileWriter fw=new FileWriter("output2.txt");
for (int j = 0; j < fans.length(); j++){
fw.write(fans.charAt(j));}
fw.close();
char [] questr=new char[ques.length()];
for(int k=0;k<questr.length;k++){
questr[k]=ques.charAt(k);
}
long startTime2 = System.currentTimeMillis();
char[] anstr= insertion(questr); //Measure execution time for this method
long endTime2 = System.currentTimeMillis();
long duration2 = (endTime2 - startTime2); //Total execution time in milli seconds
System.out.println("insertion sort "+duration2);
String ians="";
for(int k=0;k<anstr.length;k++){
ians+=anstr[k];
}
//System.out.println(ians);
FileWriter fw2=new FileWriter("output2.txt");
for (int j = 0; j < ians.length(); j++){
fw2.write(ians.charAt(j));}
fw2.close();
}
}