میدانیم مشکل اصلی Quicksort در پیدا کردن کلید قسمت Partition است. بهطوری که اگر کلید عنصر مناسبی باشد دو زیر مسئله ما اندازههای برابر (و مساوی n2) خواهند داشت و اگر کلید عنصر مناسبی از آب در نیاید، رابطه بازگشتی ما کُند خواهد بود.
برای حل این مشکل، علی قسمت انتخاب کلید تابع Parition را (که روی زیرآرایهی n=r−l+1 ،عنصری A[l..r] اجرا میشود)، به صورت زیر مینویسد.
دقت کنید که کل این رویه ۵ مرحلهای قرارست جایگزین key←A[random(l..r)] بشود.
آیا با این کارِ علی تغییری در بهترین و بدترین زمان اجرای الگوریتم QuickSort بهوجود میآید؟ جواب خود را در صورت لزوم با مثال و رابطهبازگشتی و یا اثبات بیان کنید.