Я написал этот код для сортировки элементов массива с использованием сортировки counting. Программа компилируется и запускается, но не дает правильного вывода. Я ожидаю, что элементы будут отсортированы в неубывающем порядке. Результат, который я получаю, сортируется в неубывающем порядке, но значения не совпадают с тем, что у меня был вход. Я проверял код много раз, но я не могу обнаружить ошибку. Пожалуйста помоги.Подсчет Сортировка программы
import java.io.*;
public class Main {
public static void main(String aa[]) {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(input.readLine());
int a [] = new int[t];
int c [] = new int[t];
int max = 0;
if(t<=1000000) {
for(int i = 0; i<t; i++) {
int n = Integer.parseInt(input.readLine());
if(n>=0 && n<=1000000) {
a[i] = n;
if(n>max) max = n;
}
}
int b[] = new int[max+1];
for(int i = 0; i<max+1; i++)
b[i] = 0;
for(int i = 0; i<t; i++)
b[a[i]] += 1;
for(int i = 1; i<max+1; i++)
b[i] += b[i-1];
for (int i = t-1; i>=0; i--) {
c[b[a[i]]] = a[i];
b[a[i]]--;
}
for (int i = 0; i<t; i++)
System.out.println(c[i]);
}
else
System.exit(0);
} catch (Exception e) {System.out.println(e);}
}
}
Что вы ожидаете? Что это действительно дает вам? –
Привет. Просить людей обнаружить ошибки в коде не особенно продуктивно. Вы должны использовать отладчик (или добавить заявления печати), чтобы изолировать проблему, отслеживая ход вашей программы и сравнивая ее с тем, что вы ожидаете. Как только двое расходятся, вы нашли свою проблему. (И затем, если необходимо, вы должны построить [минимальный тестовый сценарий] (http://sscce.org).) –
@JeroenIngelbrecht Я ожидаю, что элементы будут отсортированы в неубывающем порядке. Результат, который я получаю, сортируется в неубывающем порядке, но значения не совпадают с тем, что у меня был вход. –