排序算法之快速排序-06

關於快排 如下:
(c++)

#include<iostream>
using namespace std;
int a[101],n;
void quicksort(int left,int right){
    int i,j,t,temp;
    if (left>right) {
        return;
    }
    temp=a[left];
    i=left;
    j=right;
    while (i!=j) {
        while (a[j]>=temp&&i<j) {
            j--;
        }
        while (a[i]<=temp&&i<j) {
            i++;
        }
        if (i<j) {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
    a[left]=a[i];
    a[i]=temp;
    quicksort(left, i-1);
    quicksort(i+1, right);
}
int main(){
    int i;
    cin>>n;
    for (i=0; i<n; i++) {
        cin>>a[i];
    }
    quicksort(0, n-1);
    for (int i=0; i<n; i++) {
        cout<<a[i]<<' ';
    }
    cout<<endl;
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章