Pagini recente » Cod sursa (job #2436475) | Cod sursa (job #2488083) | Cod sursa (job #2487649) | Rating Lefterie Alexandru Iulian (LefterieAlex) | Cod sursa (job #1511066)
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.*;
public class Main {
static ArrayList<Integer> merg(ArrayList<Integer> vector, int s, int d){
ArrayList<Integer> rez = new ArrayList<Integer>();
if(s == d - 1){
if(vector.get(s) > vector.get(d)){
rez.add(vector.get(d));
rez.add(vector.get(s));
}
else{
rez.add(vector.get(s));
rez.add(vector.get(d));
}
return rez;
}
if(s == d){
rez.add(vector.get(s));
return rez;
}
int mij = s + (d - s) / 2;
ArrayList<Integer> stanga = merg(vector, s, mij);
ArrayList<Integer> dreapta = merg(vector, mij + 1, d);
int i = 0;
int j = 0;
int ns = stanga.size();
int nd = dreapta.size();
while(i < ns && j < nd){
if(stanga.get(i) < dreapta.get(j)){
rez.add(stanga.get(i));
i += 1;
}
else{
rez.add(dreapta.get(j));
j += 1;
}
}
for(; i < ns; i++)
rez.add(stanga.get(i));
for(; j < nd; j++)
rez.add(dreapta.get(j));
return rez;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Scanner in = new Scanner(new FileReader("algsort.in"));
int n = in.nextInt();
ArrayList<Integer> vector = new ArrayList<Integer>();
for(int i = 0; i < n; i++){
int x = in.nextInt();
vector.add(x);
}
in.close();
vector = merg(vector, 0, n - 1);
PrintWriter out = new PrintWriter("algsort.out", "UTF-8");
for(int i = 0; i < n; i++)
out.print(vector.get(i).toString() + " ");
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}