いらっしゃいませ。配列を使用して通過する基数ソート方法がありますが、空のキューに格納する別の配列 (ビン) が必要です。ビンのキューを作成する方法について混乱しています。呼び出されたときに各桁の場所を見つける 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;}
バケットを見つける方法も作成しました。それで、それを配列に入れる方法を知る必要があります。これを行うだけですか? part.add(getPlace(x, 場所));?