快排

作者: 鱼大鹿 | 来源:发表于2019-11-14 22:54 被阅读0次

#include <stdio.h>

int a[100];

void quick_sort(int a[], int l, int r)

{

    if (l < r)

    {

        int i,j,x;

        i = l;

        j = r;

        x = a[i];

        while (i < j)

        {

            while(i < j && a[j] > x)

                j--; // 从右向左找第一个小于x的数

            if(i < j)

                a[i++] = a[j];

            while(i < j && a[i] < x)

                i++; // 从左向右找第一个大于x的数

            if(i < j)

                a[j--] = a[i];

        }

        a[i] = x;

        quick_sort(a, l, i-1); /* 递归调用 */

        quick_sort(a, i+1, r); /* 递归调用 */

    }

}

int main()

{

    int i,N;

   

    printf("请设定N的值\n");

scanf("%d",&N);

    printf("请为数组赋值\n");

    for(i=0;i<N;i++)

    {

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

}

    printf("未排序的顺序:");

    for (i=0; i<N; i++)

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

    printf("\n");

    quick_sort(a, 0, N-1);

    printf("排序后的顺序:");

    for (i=0; i<N; i++)

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

    printf("\n");

}

相关文章

  • 快排

    快排代码

  • 快排

  • 快排

    昨天晚上睡觉前兴起准备十分钟写出快排,结果纠结了两个小时愣是没有搞出来,很郁闷地睡觉去。今天地铁上跟LG又重新缕了...

  • 快排

    基本思想: 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的...

  • 快排

  • 快排

    python实现 java实现:

  • 快排

    快速排序: 基本思想:1、先从数列中取出一个数作为基数。2、分区,将比此基数大的数放到它右边,小的数放到它左边。3...

  • 快排

    package sort;import java.util.Arrays;public class Quickso...

  • 快排

  • 快排

    一、(1)假如有一个数组 [8,10,2,3,6,1,5] ,我们拿出5作为参考,将小于5的数放到它的左边,大于5...

网友评论

      本文标题:快排

      本文链接:https://www.haomeiwen.com/subject/rvgdictx.html