首页 > 学院 > 开发设计 > 正文

这次是快排————也是蛮简单的

2019-11-06 06:34:55
字体:
来源:转载
供稿:网友

快排就是给你一堆数,定义一个基准数,大于基准数的放右边,小于的放左边。

比如说:6 1 2 7 9 3 4 5 10 8

以6为基准数,大于6的放右边 小于6的放左边》》》:3 1 2 5 4 6 9 7 10 8

ps:详细可以看大佬的啊哈;

下面放代码:

#include<stdio.h>int a[111],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[j];            a[j]=a[i];            a[i]=t;        }    }    //i=j时 进行交换    a[left]=a[i];    a[i]=temp;    //现在这里的i和j相等 第一次到这里的时候都是6    quicksort(left,i-1);//左边在进行处理    quicksort(i+1,right);//右边再处理}int main(){    scanf("%d",&n);    for(int i=1; i<=n; i++)    {        scanf("%d",&a[i]);    }    quicksort(1,n);    for(int i=1; i<=n; i++)    {        PRintf("%d ",a[i]);    }    return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表