Pagini recente » Cod sursa (job #2620585) | Cod sursa (job #571511) | Cod sursa (job #3174401) | Cod sursa (job #1596207) | Cod sursa (job #2195315)
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader("radixsort.in"));
int n = scanner.nextInt();
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
scanner.close();
int arr[] = new int[n];
arr[0] = b;
for (int i=1; i<n; i++) {
arr[i] = (a * arr[i-1] + b) % c;
}
radixSort(arr);
PrintWriter printWriter = new PrintWriter("radixsort.out");
for (int i : arr) {
printWriter.printf("%d ", i);
}
printWriter.close();
}
static void radixSort(int arr[]) {
Queue<Integer>[] counter = new LinkedList[256];
for (int i=0; i<counter.length; i++) {
counter[i] = new LinkedList<>();
}
for (int byteNumber=0; byteNumber<4; byteNumber++) {
for (int i=0; i<arr.length; i++) {
int byteValue = getByte(arr[i], byteNumber);
counter[byteValue].offer(arr[i]);
}
int k=0;
for (Queue<Integer> list : counter) {
if (list != null) {
while (!list.isEmpty()) {
arr[k++] = list.poll();
}
}
}
}
}
static int getByte(int n, int byteNumber) {
return (n >> (byteNumber * 8)) & 0xFF;
}
}