首先选取序列的第一个数为key,然后先从后往前遍历,找到比key小的数停止,然后再从前往后遍历,找到比key大的数停止,然后调换这两个数的位置。然后重复这个步骤,直到相遇为止并将这个数与数组的最左边的数进行交换,将所有比key小的数放在它的位置之前,所有比key大的数放在它之后,划分为两个子序列,这样就完成了一趟快速排序。然后将两个子序列的第一个数分别作为它们新的key值,重复之前的排序操作,直至整个序列有序时算法结束。
快速排序时间复杂度O(nlogn) 不稳定 也就是相同的值相对位置排完序后会发生改变