快速排序非递归代码

Posted 哇小明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序非递归代码相关的知识,希望对你有一定的参考价值。

直接贴代码:

int part(int *a,int left,int right)
int middle = a[left];
int ind=left;
while (left != right) 
    while (a[right] >= middle && left < right)
        right--;
    while (a[left] <= middle && left < right)
        left++;
    if (left < right) 
        int t = a[left];
        a[left] = a[right];
        a[right] = t;
    

a[ind] = a[left];
a[left] = middle;
return left;



void quicksort(int b[],int left,int right)
if(left>right)
    return;

int i=0,j=0,t=0,middle=0;
std::stack<int> index;
index.push(left);
index.push(right);

while(!index.empty())
    j=index.top();
    index.pop();
    i=index.top();
    index.pop();
    int mid = part(b,i,j);
    if(mid-1 >i)
        index.push(i);
        index.push(mid-1);
    
    if(mid+1<j)
        index.push(mid+1);
        index.push(j);
    




int main()
int aa[10]=2,5,6,1,14,3,56,7,0,12;
quicksort2(aa,0,9);
//std::vector<std::shared_ptr<BaseHolder>> funSetHolder::add(1,2);

//quickSort(aa,0,9);
for(auto&ad:aa)
    std::cout<<ad<<" ";


以上是关于快速排序非递归代码的主要内容,如果未能解决你的问题,请参考以下文章

快速排序非递归代码

数据结构-排序快速排序的非递归算法

六千字快速复习七种常用排序

六千字快速复习七种常用排序

每天刷个算法题20160525:快速排序的递归转非递归解法

快速排序:递归与非递归