数据结构代码实现快速排序
快速排序:在排序表中任取一个元素作为基轴元素,通过一趟排序将排序表从k处拆分分为两个部分,左边小于基轴元素,右边大于基轴元素,k个位置存放基轴元素,依次对基轴左边和基轴右边继续进行快速排序操作,直至划分完全为止。代码思想:选择表头第一个元素作为基轴元素,定义两个变量分别从表头表尾遍历,当大于基轴元素,插入基轴右边,当小于基轴元素插入基轴的左边。while(low
快速排序:在排序表中任取一个元素作为基轴元素,通过一趟排序将排序表从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);//划分右子表
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)