完全なエラーは次のとおりです。 * 'to' int ** '' quickSort(int **、int、int) 'への引数' 1 'C++でのクイックソートアルゴリズムの実装中にエラーが発生しました: - "エラー: 'int *'を 'int **'に変換できません....."
MY全体のコードは以下の通りです:
#include <iostream>
using namespace std;
int Partition (int *A[], int p, int r) {
int x = *A[r];
int i = p-1;
for (int j=0; j<=r; j++){
if(*A[j]<=x){
i++;
int save=*A[j];
*A[j] = *A[i];
*A[i] = save;
}
}
int save2=*A[i+1];
*A[i+1]=*A[r];
*A[r]=save2;
return (i+1);
}
void quickSort(int *A[], int p, int r) {
if (p<r){
int q = Partition(A, p, r);
quickSort(A, p, (q-1));
quickSort(A, (q+1), r);
}
}
int main() {
int RR[] = {2,8,7,1,3,5,6,4};
int y=sizeof(RR)/sizeof(int)-1;
cout << y << endl;
int *QQ = RR;
cout << *QQ << endl;
quickSort(QQ, 0, y);
return 0;
}
これは私が擬似コードから自分自身を試してみました実装です。私はプログラミングに慣れていないので、なぜこのエラーが発生したのかを少し説明することができれば大きな助けになるでしょう。事前
'int * A []' vs 'int * QQ':1次元がありません。単にコンパイラのエラーメッセージを読んでください。 –
代替:配列へのポインタを必要としないように関数を書き換えます。ここでポインタを使う必要はありません。 – user4581301
'int * A []'宣言は、整数へのポインタ*の配列です。宣言 'int A []'は整数の配列です。あなたは、整数またはポインタの配列を渡していますか? –