whitefox 發表於 2023-5-31 23:43:47

[C++] 快速排序法

練習排序法中的快速排序法#include <iostream>

using namespace std;

int a, n;

void quicksort(int left, int right){
        int i, j , t, temp, x;
        if(left>right)
                return;
       
        temp=a;
        i=left;
        j=right;
        while(i!=j){
                while (a>=temp && i<j)
                        j--;
                while (a<=temp && i<j)
                        i++;
               
                if(i<j){
                        t=a;
                        a=a;
                        a=t;
                }
        }
       
        a=a;
        a=temp;
       
        for (x=1;x<=n;x++)
                cout<<a<<" ";
       
        cout<<"("<<temp<<")"<<endl;
       
        quicksort(left, i-1);
        quicksort(i+1, right);
}

int main(){
        int i, j, t;
       
        cin>>n;
        for (i=1;i<=n;i++)
                cin>>a;
       
        quicksort(1, n);
       
        for (i=1;i<=n;i++)
                cout<<a<<" ";
       
        cout<<endl;
       
        system("PAUSE");
        return 0;
}
頁: [1]
查看完整版本: [C++] 快速排序法