#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <vld.h>
//快速排序
//一次划分过程
int Partation(int*arr,int low,int high)//返回值为low与high相等时的下标
{
int tmp=arr[low];//将第一个数字作为基准
while(low<high)
{
while((low<high) && (arr[high] >=tmp))//从后往前找比基准小的数字往前移
{
high--;//没有找到比基准小的数字
}
if(low == high)
{
break;//直到low与high相等跳出
}
else
{
arr[low] = arr[high];//将后面小的数字移到前面
}
while((low<high) && (arr[low]<=tmp))//从前往后找比基准大的数字
{
low++;//没有找到比基准大的数字
}
用栈实现快速排序
最新推荐文章于 2024-07-16 19:48:30 发布
本文探讨如何利用栈的数据结构实现快速排序算法,详细解析排序过程中的递归思路转换,通过实例展示如何将递归转化为栈操作,提高排序效率。
摘要由CSDN通过智能技术生成