Pagini recente » Cod sursa (job #2423372) | Cod sursa (job #1948175) | Cod sursa (job #2423425) | Rating Alexandru Stefanica (S4lexandru) | Cod sursa (job #1511110)
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Scanner in = new Scanner(new FileReader("algsort.in"));
int n = in.nextInt();
int[] vector = new int[n];
for(int i = 0; i < n; i++)
vector[i] = in.nextInt();
in.close();
quick(vector, 0, n - 1);
PrintWriter out = new PrintWriter("algsort.out", "UTF-8");
for(int i = 0; i < n; i++)
out.print(Integer.toString(vector[i]) + " ");
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void quick(int[] vector, int s, int d) {
if(s >= d)
return;
int mij = s + (d - s) / 2;
int i = s;
int pivot = vector[mij];
int j = d;
while(i <= j){
while(i < d && vector[i] < pivot)
i += 1;
while(j > s && vector[j] > pivot)
j -= 1;
if(i < j){
// int aux = vector[i];
// vector[i] = vector[j];
// vector[j] = aux;
vector[i] = vector[i] ^ vector[j];
vector[j] = vector[i] ^ vector[j];
vector[i] = vector[i] ^ vector[j];
i += 1;
j -= 1;
}
else if(i == j){
i += 1;
j -= 1;
break;
}
}
quick(vector, s, i - 1);
quick(vector, i, d);
}
}