标签:下标 数字 17 57 无序 简述 pivot 排序 快速
基本思想
将无序数组中的每一个数都放到正确的索引位置。
- 在无序数组中随机选择一个数作为基准数字pivot。
- 将大于pivot的数字放在pivot的右边位置,将小于pivot的数字放在pivot的左边位置。
- 此时pivot位于正确索引,分别对左右两个序列重复1.2步骤,直到所有数字都找到正确索引。
假设无序数组如下:
我们每次都选择无序数组中的第一个数作为基准数字,因此选择17作为基准数字pivot,为了将小于17的数字放到左边,大于17的数字放到右边,我们设定两个下标,指向无序数组中的第一个数和最后一个数,如下图中,L下标从左往右移动,R下标从右往左移动。
首先,将R下标所指的数与pivot比较,5<17,则把5放到L下标位置。(若大于17,则不动,R下标继续移动)
然后,L下标向右移动, 将57与pivot比较,57>17,此时将57放到R下标位置。
再回到R下标,继续向左移动,2<17,将2放到L下标位置。
再回到L下标 ,继续向右移动,对比6<17,此时不动。
L下标继续移动,15<17,依然不动。
L下标继续移动,此时L与R重合,则将pivot放到该位置,第一次排序结束。
其中,17已回归正确的索引位置,左边序列的数都比17小,右边序列的数都比17大。
我们分别对左右两边的序列重复上述步骤(由于右序列下标已经重合,因此57也正确归位)
标签:下标,数字,17,57,无序,简述,pivot,排序,快速 来源: https://blog.csdn.net/qq_38340516/article/details/120312316
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。