ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

快速排序:分而治之的快速排序

快速排序:分而治之的快速排序 快速排序:分而治之的快速排序在所有 O(n log n) 的排序算法里,快速排序是实际应用中跑得最快的一个。它的名字不是吹的——它是真的"快速"。一、核心思想:选一个"基准",分左右站队快速排序的思路特别直观,用一句话概括:从数组中选一个元素当"基准"(pivot),把比它小的放左边,比它大的放右边,然后对左右两部分分别再排序。想象你是一个体育老师,要把一班学生按身高排队:你随便拉一个同学站中间当"基准人"比他矮的站左边,比他高的站右边左边和右边各自再选一个基准人,重复上面的步骤直到每一组只剩一个人这就是快速排序——分治思想的经典应用。二、具体怎么操作?以[6, 3, 8, 1, 5, 2, 7, 4]为例:第一步:选基准,做划分(Partition)假设选最后一个元素 4 作为基准:从左往右扫,找到比 4 大的就停下来再从右边找比 4 小的交换它们最后把基准放到正确的位置一趟划分后,可能是:[3, 1, 2, 4, 5, 6, 7, 8]4 左边的都比
返回列表