代码如下,行行说明代码设计,需要具备快排思想
#include <iostream>
using namespace std;
void quickSort(int *arr,int begin,int end){
if(begin>=end)return;
//当最后只剩一个数时结束排序,说明排序完成
int l=begin;//左指针 ,为什么需要定义一个l不用begin直接进行,是为了记录递归的左指针,结尾有说明
int r=end;//右指针 ,同理,结尾有说明
int p=arr[l];//基准,默认设置为第一个
while(l<r){//当两个指针没有相等且超出时
while(l<r && arr[r]>=p)r--;
//当左指针小于右指针(注意:不是数组元素),且当前右指针的元素是大于等于p时
//这时不用交换元素只用让r--,直到找到右边元素小于p位置
if(l<r)arr[l]=arr[r];//当右边元素小于p时,这时需要把右边的元素赋值为左指针指向的元素
while(l<r && arr[l]<=p)l++;
//当左指针小于右指针,且 当前的左指
本文通过详细注释的C/C++代码,讲解快速排序算法的实现步骤,帮助读者快速理解和掌握这一高效排序方法。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



