您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言_快速排序代码

时间:01-19来源:作者:点击数:
城东书院 www.cdsy.xyz

C语言快速排序代码

#include <stdio.h>
#define N 100010
int n = 0;
int a[N];

void paixu(int a[], int left, int right) 
{
    if(left >= right)   //如果指针相遇说明排完本轮,则开始返回递归
    {
        return;
    }   
    int i = left - 1;
    int j = right + 1;
    int mid = a[(left + right)/2];
    while(i < j)
    {
        do
        {
            i++;       //防止死循环
        }while(a[i] < mid);

        do
        {
            j--;
        }while(a[j] > mid);

        if(i < j)
        {
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
    }

    paixu(a,left,j);
    paixu(a,j+1,right);

}

int main()
{
    scanf("%d",&n);
    for(int i = 0; i < n; i++) //输入
    {
        scanf("%d",&a[i]);
    }

    paixu(a,0,n-1);

    for(int i = 0; i < n; i++)  //输出
    {
        printf("%d ",a[i]);
    }

    return 0;

}

 

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐