クイックソートの実装に問題があります。 問題はランダムに見え、ソートされた配列はソートされません。この擬似コードに基づいてプログラムのクイックソートが機能しない
I:私のコードがある
1 procedure quick sort1(l, r);
2 begin
3 if ` < r then
4 t ← A[l]; {t — pivot}
5 s ← l;
6 for i ← l + 1 to r do {move elements around pivot}
7 if A[i] < t then
8 s ← s + 1;
9 swap(A[s], A[i]);
10 end if;
11 end for;
12 swap(A[l], A[s]);
13 quick sort1(l, s − 1); {recursive call for both subarrays}
14 quick sort1(s + 1, r);
15 end if;
16 end.
:
public void QuickSort(int[] A, int l, int r)
{
int t;
int s = 0;
if (l < r)
{
t = A[l];
s = l;
for (int i = l + 1; i < r; i++)
{
if (A[i] < t)
{
s = s + 1;
swaponator(ref A[s], ref A[i]);
}
}
swaponator(ref A[l], ref A[s]);
QuickSort(A, l, s - 1);
QuickSort(A, s + 1, r);
}
}
をしかし、それは動作しません - 私はまだ何もこれをデバッグしていないと、なぜ、見当がつかない。
お願い、誰かに私にヒントを教えてもらえますか?
よろしくお願いいたします。
私の最初のヒントは、意味のある変数名を使用することです - それ以外の場合は読みにくいです。 – phuzi
「うまくいかない」とはどういう意味ですか?例外はありますか?予想外の結果ですか?あなたが達成しようとしていることと、あなたがどこにこだわっているのかをより具体的にしてください。 – HimBromBeere
擬似コードのソースは何ですか?私はGoogleとそれを見つけることができませんでした。 – xanatos