سوال ۳

می‌دانیم مشکل اصلی ‎$Quicksort$‎ در پیدا کردن کلید قسمت ‎Partition‎ است. به‌طوری که اگر کلید عنصر مناسبی باشد دو زیر مسئله ما اندازه‌های برابر (و مساوی ‎$\frac{n}{2}$‎) خواهند داشت و اگر کلید عنصر مناسبی از آب در نیاید، رابطه بازگشتی ما کُند خواهد بود.

برای حل این مشکل، علی قسمت انتخاب کلید تابع ‎Parition‎ را (که روی زیرآرایه‌ی‎ $n=r-l+1$ ،‎عنصری ‎$A[l..r]$‎ اجرا می‌شود)، به صورت زیر می‌نویسد.

دقت کنید که کل این رویه ‎۵ مرحله‌ای قرارست جایگزین ‎$key \leftarrow A[random(l..r)]$‎ بشود.‎

آیا با این کارِ علی تغییری در بهترین و بدترین زمان اجرای الگوریتم ‎$QuickSort$‎ به‌وجود می‌آید؟ جواب خود را در صورت لزوم با مثال و رابطه‌بازگشتی و یا اثبات بیان کنید.