在快速排序这个地方上,在涂鸦移动上吃了一次亏,在阿里笔试上又吃了一次。总结一下
快速排序有很多种变种,每种不同的方法得到的排序结果都是左边的比他小,右边比他大。但是不同的方法,最后得到的两边的顺序不一样。
百度百科中的快速排序(最经典):选择第一个数位基准数,然后从后开始搜索比他小的数,左边记录i,右边记录j,然后放在第0个位置上此时空出一个位置j,然后从前面开始搜索比他大的数,找到之后放到j上,此时空出一个i,然后再从右边搜索比他小的数,知道i==j,然后把基准数放到空的位置上。
随机快速排序:随机取一个数,作为基准数,然后进行排序(牛客上看的)
普通的快排,时间nlogn,最坏情况下是有序的时候,最差,On^2。随机快速排序,解决了有序最坏的情况,最坏的情况决定于随机取到的数是否有序。