在不改变时间复杂度下,如何解决快速排序不稳定的问题(c语言)
重点来了,如果使用额外的辅助空间,就可以实现稳定的快速排序:代码如下:
def MySort(self , arr ):
if len(arr) <= 1:
return arr
left, right = [], []
for i in range(1,len(arr)):
if arr[i] < arr[0]:
left.append(arr[i])
else:
right.append(arr[i])
return self.MySort(left) + [arr[0]] + self.MySort(right)