最初の要素をピボットとするクイックソートパーティションアルゴリズムを実装しようとしていますが、最後の要素をピボットとして検討しました。誰かが私が次の擬似コードで間違っている場所を教えてください。最初の要素をピボットとして使用したQuicksortパーティションアルゴリズムの実装
/* Taking first element of array as pivot and movig all elements
smaller than pivot left to pivot and greater tto its right */
// L is leftmost index, R is rightmost index
Partition(A[],L,R)
{
pivot = A[L]
i = L-1
for (j =L to R)
{
// If current element is smaller than or equal to pivot
if (A[j] <= pivot)
{
i++; // increment index of smaller element
swap A[i] and A[j]
}
}
swap A[i + 1] and A[L])
return (i + 1)
}
quicksortはC++です。 QsortはCのクイックソートに相当します。 –
あなたは間違っていますか?何があなたをそう思わせたのですか?そしてあなたはあなたの[rubber duck](https://en.wikipedia.org/wiki/Rubber_duck_debugging)に擬似コードを説明しようとしましたか? –
最後の要素でピボットの正しいコードがわかっている場合は、最初と最後の要素を入れ替え、最後の要素でピボットのコードを実行します。それに少しの努力が必要です。 –