数据结构代码实现快速排序

快速排序:在排序表中任取一个元素作为基轴元素,通过一趟排序将排序表从k处拆分分为两个部分,左边小于基轴元素,右边大于基轴元素,k个位置存放基轴元素,依次对基轴左边和基轴右边继续进行快速排序操作,直至划分完全为止

代码思想:选择表头第一个元素作为基轴元素,定义两个变量分别从表头表尾遍历,当大于基轴元素,插入基轴右边,当小于基轴元素插入基轴的左边。

int partition(int A[],int low,int high){

int privort=A[low]//privort作为基轴元素

while(low<high)//当low<high时继续进行查找移动操作

{

if(A[high]>=privort)

        high--;

A[low]=A[high];//比基轴小的元素移动到左边

if(A[low]<=privort)

        low++;

A[high]=A[low];//比基轴大的元素移动到右边

}

A[low]=privort;//基轴元素最终存放位置

return low;//返回最终位置

}

void QuickSort(int A[],int low,int high){

if(low<high){//递归跳出条件

int pivort=partition(A,low,high);//划分

QuickSort(int A,low,privort-1);//划分左子表

QuickSort(int A,low,privort+1);//划分右子表

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绞尽脑汁想个网名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值