문제
을 환영합니다.나는가수 분류 방법을 사용하는 배열을 통해 이동했지만,다른 배열(bin)을 저장하는 빈에서 큐가 있습니다.나는 방법으로 혼란을 큐에 쓰레기통에 버리지 마십시오.나는 또한 findPlace 방법을 찾는 장소의 각 자의 경우에 호출.그래서,여기에 무료 신문 등이 있습니다.누군가의 도움을 받을 수 있는 나에게 무엇을 찾아 나가 없는가?감사합니다 너무 많은 시간입니다.
public static void radix(int [] list){
int [] bin = new int[10];
ArrayQueue<Integer> part = new ArrayQueue<Integer>(); // EDIT What would I do with this queue??
int num = 0;
for(int i=0;i<list.length;i++)
{
bin[i] = 0;
}
for(int pass=0;pass<list.length;pass++)
{
for(int num=0;num<list.length;num++)
{
int digit=findPlace(bin[pass], num);
}
bin[digit].add(list[num]); // add to the bin
}
// Put back into list
for(int h=0; h<10; h++)
{
while(!bin[h].isEmpty())
{
list[num] = bin[queueNum].remove();
num++;
}
}
}
public static int getPlace (int x, int place)
{return x/place % 10;}
기도 했는 방법을 찾기 위해 양동이다,그래서 나는 방법을 알고 있어야 나는 그것을 두 배열로,나는 그냥 이렇게 할까요?부분입니다.추가(getPlace(x,장소));?
해결책
귀하의 배열 bin
처럼 행동하지 않는 대기 때문에 당신이 원하는:)배열이 없어 방법 add()
고 remove()
.당신은 두 가지 선택을 수정하는 방법에 대한 이:
프로그램에서 적절한 취급을 큐에 대한 자신을:큐 구성되어 있의 배열 및 두 개의 포인터 배열,전통적으로 불
head
고tail
.당신을 당신의 방법을 추가하고 제거하는 것이스 및 포인터와 관심의 빈 큐 또는 넘치는 하나입니다.Java 를 사용에 내장 된 큐 클래스입니다.그것은 문서 라이브러리에서의 Javadocs.알 수 없는 경우 지정 계획을 위해 당신을 데려 갈 것이다,큐,하지만.
업데이트 진 또 다른 세부 사항:
당신이 물을 추출하는 방법을 한 자리에서 숫자입니다.그것은 쉬운 일이에서 적어도 중요한 자리 숫자(LSD)로에서 제니다.그렇게 하도록 요청합니다.
- 추출 마지막 자리,마
digit = number % 10
(는 모듈로 동작).당신을 얻을 것이 사이의 정수는 0 9 포함한다. - 를 벗어난 숫자,단순히 나누기 10.당신은 해낼 수 있다 또 다른 자리입니다.
- 때문에 당신이해야에서 찾고 있 n 의 마지막 숫자 번호를 여러 번,당신이 잘 할 것이 기능으로 별도의 방법입니다.
당신이 사용할 수 있습 0 통해 9 선택하려면 오른쪽 큐를 넣어 수니다.
이 완료되면 대기의 모든 숫자 10 버킷을 복사해야 합니다 거기에서 그들을 다시 하나의 목록입니다.그만큼 반복하 있는 여전히 자리에는 어떤 수는 없 처리됩니다.