Pagini recente » Cod sursa (job #2639486) | Cod sursa (job #3259139) | Cod sursa (job #2203975) | Cod sursa (job #2999105) | Cod sursa (job #1846088)
import java.io.*;
import java.util.*;
class Main {
private static int[] numbers;
private static void readData(Scanner scanner) {
int n = scanner.nextInt();
numbers = new int[n];
for (int i = 0; i < n; i++)
numbers[i] = scanner.nextInt();
}
private static int getRandom(int min, int max) {
Random rand = new Random();
return rand.nextInt(max - min + 1) + min;
}
private static void quickSort(int left, int right) {
if (left >= right) return;
int pivotPosition = getRandom(left, right);
int pivot = numbers[pivotPosition];
int i = left;
int j = right;
while (i < j) {
while (numbers[i] < pivot && i < right) i++;
while (numbers[j] > pivot && left < j) j--;
if (i <= j) {
int aux = numbers[i];
numbers[i] = numbers[j];
numbers[j] = aux;
i++;
j--;
}
}
if (left < j) quickSort(left, j);
if (i < right) quickSort(i, right);
}
public static void main(String[] args) {
try {
File inputFile = new File("algsort.in");
File outputFile = new File("algsort.out");
FileInputStream inputStream = new FileInputStream(inputFile);
FileOutputStream outputStream = new FileOutputStream(outputFile);
Scanner scanner = new Scanner(inputStream);
PrintWriter writer = new PrintWriter(outputStream);
readData(scanner);
scanner.close();
inputStream.close();
quickSort(0, numbers.length - 1);
for (int number: numbers) {
writer.print(number);
writer.print(' ');
}
writer.print('\n');
writer.close();
outputStream.close();
} catch(IOException e) {};
}
}