快速排序:在排序表中任取一个元素作为基轴元素,通过一趟排序将排序表从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);//划分右子表

}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐