Pagini recente » Cod sursa (job #1484390) | Cod sursa (job #976470) | Cod sursa (job #2063991) | Cod sursa (job #1957539) | Cod sursa (job #1925270)
package com.company;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void swap(int[] v, int p1, int p2) {
int aux = v[p1];
v[p1] = v[p2];
v[p2] = aux;
}
public static int lemuto(int[] v, int st, int dr) {
Random r = new Random(System.currentTimeMillis());
int randomPivot = st + Math.abs(r.nextInt()) % (dr - st + 1);
swap(v, randomPivot, dr);
int pIndex = st;
for (int i=st ; i < dr; i++) {
if (v[i] <= v[dr]) {
swap(v, i, pIndex);
pIndex++;
}
}
swap(v, dr, pIndex);
return pIndex;
}
public static void quickSort(int[] v, int st, int dr) {
if (st < dr) {
int pIndex = lemuto(v, st, dr);
quickSort(v, st, pIndex - 1);
quickSort(v, pIndex, dr);
}
}
public static void main(String[] args) {
Scanner f = null;
try {
f = new Scanner(new File("sortare.in"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int n = f.nextInt();
int[] v = new int[n];
for (int i=0; i<n; i++) {
v[i] = f.nextInt();
}
quickSort(v, 0, v.length - 1);
PrintWriter g = null;
try {
g = new PrintWriter("sortare.out");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
for(int i=0; i<v.length; i++) {
g.print(v[i] + " ");
}
}
}