※ ChatGPTを利用し、要約された質問です(原文:クィックソート)
クィックソートの作成とエラーの解消方法
このQ&Aのポイント
クィックソートによってソーティングを行う関数を作成しましたが、並び替えができていない状況です。
C言語のコンパイラcgwinを使用しています。試した修正方法でも解決しなかったため、プログラムに問題があるかもしれません。
この関数を使って数字の並び替えを行う場合、エラーは表示されずに並び替えができません。解決策をお知りの方は教えていただけますか?
クィックソートによってソーティングを行う関数を作成せよ。という問題です。
C言語でcgwinを使っています。
以下が私が作った関数です。
(a[ ]は並び替えを行う配列(乱数)。最初、lとrには0とn-1(配列の要素数)を入れます。)
void quick_sort( int a[], int l, int r)
{
int p,ll,rr,temp;
p = a[ l ];
ll = l;
rr = r;
while( ll <= rr )
{
while( a[ ll ] < p )
{
ll = ll + 1;
}
while( a[ rr ] > p )
{
rr = rr - 1;
}
if( ll <= rr )
{
temp = a[ ll ];
a[ ll ] = a[ rr ];
a[ rr ] = temp;
ll = ll + 1;
rr = rr - 1;
}
}
if( l < rr )
{
quick_sort( a, l, rr );
}
else if( ll < r )
{
quick_sort( a, ll, r );
}
}
問題は、この関数を使って数字の並び替えを行うのですが
エラーは出ないのですが並び替えができていません。
だからプログラム自体がおかしいのかなと思っていろいろと
試してみたのですが結果は変わりませんでした。
どなたか分かる方、教えていただけませんか??
お礼
直せました~~! 本当だ、なんて初歩的なミスだったんでしょう^^; ありがとうございました。