-2
私は整数の配列を取り、それらを基数16 8 10と2のためにソートするプログラムを書いています。私の関数は2以外のすべての基底で機能します。私は周りを見回していて、問題を特に説明する場所はありません。私はシフト(>> < <)を使用すると思いますが、正確にはわかりません。あなたはまだあなたが2つのスポットであなたの実装にベース10で作業しているという事実をハードコーディングされてきた基数2の基数ソート機能は機能しませんか?
void Sortfunc(int myarray[], int n, int base){
queue<int> bins[10];
int MAX=4; // max digits
int COUNTER=0;// position of counter
while (COUNTER < MAX) {
for(int i=0; i<n; i++){// sorts array by digit
int dividor=pow(base,COUNTER);
int temp = myarray[i];
int value = static_cast<int>((temp/dividor)%10); //gets the decimal
bins[value].push(temp);
}
あなたのコードを見ずに私はあなたに多くのアドバイスを与えることはできないと思います。あなたが持っているものとあなたが得ている特定のエラーを投稿できますか? – templatetypedef
私が得るエラーは、ベース2を入力したときに配列が正しくソートされていないということです。他のすべてのベースで正常に動作します。 – G3Spin
'std :: sort'を使わない理由は何ですか? –