1. 程式人生 > >快速排序(二)

快速排序(二)

arr gpo 快速 and 情況 post 數據 wap 排序

隨機化快速排序:當一組數據近乎有序的時候,使用之前的快速排序的方法,每次都會選擇最左側的值作為標定值,將數據分為三部分,但是數據是近乎有序的數據,此時每次進行排序就不會將數據分為兩部分,此時logN的時間復雜度講上升為n^2的時間復雜度。

避免產生這種情況:在選用標定值之前,先使用隨機數的方法。

swap(arr[l],arr[srand()%((r-l+1)+l)]);

T v=arr[l];

快速排序(二)