quicksort


代码

#include "stdio.h"

void quicksort(int a[], 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(a, left, i-1);
    quicksort(a, i+1, right);
} 

int main(){
    int i, j, t; 
    int n = 5;
    scanf("%d", &n);
    int a[n];
    for(i = 1;i <= n; i++) 
        scanf("%d", &a[i]); 

    quicksort(a, 1, n);

    for(i=1; i <= n; i++) 
        printf("%d ", a[i]); 
    putchar('\n');
    return 0;     
}

运行结果


文章作者: 套陆
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 套陆 !
评论
  目录