道理很简单,如果分区选择最大的数,而最大的数在最后面,分区的目标是把比基准更小的数放在前面更大的放在后面
那么这样一来,操作前后没有区别,等于没有操作,岂不是死循环么
快速排序是一种常用的排序算法,其基本原理是选择一个基准数,将比基准数小的元素放在基准数的左边,比基准数大的元素放在基准数的右边,然后递归地对左右两个子序列进行同样的操作,直到整个序列有序。具体步骤如下:
快速排序的时间复杂度为O(nlogn),是一种比较高效的排序算法。
如图上描述,因为会将小的放左边,大的放右边,如果判断条件带了等于号,那么会一直判断为 true。