У меня возникли проблемы с работой моего кода. Предполагается, что пользователю будет предложено определить размер массива, а затем указать систему счисления и использовать ее для сортировки массива. Когда я пытаюсь отобразить отсортированный массив, чтобы убедиться, что он отсортирован, появляется «[]». Ниже приведен мой код.
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Please enter the size of the array: ");
Scanner input1 = new Scanner(System.in);
int numBits = input1.nextInt();
Scanner input2 = new Scanner(System.in);
System.out.println("Please enter size of radix: ");
int radixNum = input2.nextInt();
getBits(radixNum);
ArrayList sortIt = new ArrayList();
radSort(sortIt, radixNum, numBits);
System.out.println(sortIt.toString());
}
private static int getBits(int radixNum) {
double lognum = Math.log(10000);
double logbase = Math.log(radixNum);
int numBits = (int) Math.floor((lognum / logbase) + 1);
System.out.println("Bits " + numBits);
return numBits;
}
/**
* Sorts the array in a radix sort where the radix is decided by the user
*
* @param sortIt
* @param radixNum
*/
private static ArrayList radSort(ArrayList sortIt, int radixNum, int numBits) {
ArrayList bucketStorage = new ArrayList();
ArrayList temp;
temp = sortIt;
int tempNumb;
for (int i = 0; i < radixNum; i++) {
ArrayList bucket = new ArrayList();
bucketStorage.add(bucket);
}
for (int j = 0; j < numBits; j++) {
while (!temp.isEmpty()) {
tempNumb = temp.remove(0);
bucketStorage.get(getBitNumber(tempNumb, j, radixNum)).add(tempNumb);
}
for (int m = 0; m < bucketStorage.size(); m++) {
for (int n = 0; n < bucketStorage.get(m).size(); n++) {
temp.add(bucketStorage.get(m).get(n));
}
bucketStorage.get(m).clear();
}
}
return temp;
}
private static int getBitNumber(int a, int b, int R) {
double expNum;
int entry;
expNum = Math.pow(R, b);
entry = (int) Math.floor(a / expNum) % R;
return entry;
}
Подробнее здесь: https://stackoverflow.com/questions/333 ... ly-in-java
Не можете определить, правильно ли работает моя сортировка Radix в Java? ⇐ JAVA
Программисты JAVA общаются здесь
1760348756
Anonymous
У меня возникли проблемы с работой моего кода. Предполагается, что пользователю будет предложено определить размер массива, а затем указать систему счисления и использовать ее для сортировки массива. Когда я пытаюсь отобразить отсортированный массив, чтобы убедиться, что он отсортирован, появляется «[]». Ниже приведен мой код.
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Please enter the size of the array: ");
Scanner input1 = new Scanner(System.in);
int numBits = input1.nextInt();
Scanner input2 = new Scanner(System.in);
System.out.println("Please enter size of radix: ");
int radixNum = input2.nextInt();
getBits(radixNum);
ArrayList sortIt = new ArrayList();
radSort(sortIt, radixNum, numBits);
System.out.println(sortIt.toString());
}
private static int getBits(int radixNum) {
double lognum = Math.log(10000);
double logbase = Math.log(radixNum);
int numBits = (int) Math.floor((lognum / logbase) + 1);
System.out.println("Bits " + numBits);
return numBits;
}
/**
* Sorts the array in a radix sort where the radix is decided by the user
*
* @param sortIt
* @param radixNum
*/
private static ArrayList radSort(ArrayList sortIt, int radixNum, int numBits) {
ArrayList bucketStorage = new ArrayList();
ArrayList temp;
temp = sortIt;
int tempNumb;
for (int i = 0; i < radixNum; i++) {
ArrayList bucket = new ArrayList();
bucketStorage.add(bucket);
}
for (int j = 0; j < numBits; j++) {
while (!temp.isEmpty()) {
tempNumb = temp.remove(0);
bucketStorage.get(getBitNumber(tempNumb, j, radixNum)).add(tempNumb);
}
for (int m = 0; m < bucketStorage.size(); m++) {
for (int n = 0; n < bucketStorage.get(m).size(); n++) {
temp.add(bucketStorage.get(m).get(n));
}
bucketStorage.get(m).clear();
}
}
return temp;
}
private static int getBitNumber(int a, int b, int R) {
double expNum;
int entry;
expNum = Math.pow(R, b);
entry = (int) Math.floor(a / expNum) % R;
return entry;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/33336909/unable-to-tell-if-my-radix-sort-is-working-properly-in-java[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия