您的位置:首页 > 理论基础 > 数据结构算法

快速排序 C语言版

2016-12-03 10:03 218 查看
#include<stdio.h>

void QuickSort(int s[],int l,int r);

int AdjustArray(int s[],int l,int r);

int main() {

    int i,n,s[100];

    printf("快速排序:\n");

    scanf("%d",&n);

    for(i=0;i<n;i++){

    scanf("%d",&s[i]);

    }

    QuickSort(s,0,n-1);

    printf("排序结果:\n");

    for(i=0;i<n;i++){

    printf("%d ",s[i]);

    }

    printf("\n");

    return 0;

}

void QuickSort(int s[],int l,int r) {

    int i;

    if(l<r){

      i=AdjustArray(s,l,r);

      QuickSort(s,l,i-1);

      QuickSort(s,i+1,r);

    }

}

int AdjustArray(int s[],int l,int r){

    int i=l,j=r;

    int x=s[l];

    while(i<j){

        while(i<j&&s[j]>=x){

             j--;

        }

        if(i<j){

          s[i]=s[j];

          i++;

        }

        while(i<j&&s[i]<x){

             i++;

        }

        if(i<j){

          s[j]=s[i];

          j--;

        }

    }

    s[i]=x;

    return i;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息