排序算法不穩定的含義
在排序之前,有兩個數相等,但是在排序結束之后,它們兩個有可能改變順序,這就是說明該排序算法具有不穩定性。
快排不穩定
假設待排序數組: a = [ 1, 2, 2, 3, 4, 5, 6 ];
在快速排序的隨機選擇比較子(即pivot)階段:
若選擇a[2](即數組中的第二個2)為比較子,而把大於等於比較子的數均放置在大數數組中,則a[1](即數組中的第一個2)會到pivot的右邊, 那么數組中的兩個2非原序(這就是“不穩定”)。
若選擇 a[1] 為比較子,而把小於等於比較子的數均放置在小數數組中,則數組中的兩個 2 順序也非原序 。
這就說明,quick sort是不穩定的。