zoukankan      html  css  js  c++  java
  • quick-sort

    快速排序,好评如潮,即便不懂,正确的源码,你也值得拥有

    ——————————————————————————————

    //sort.c

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    int partition(int arr[], int low, int high)

    {

        int i=low, j=high;

        int pivot = arr[low];

       

        while(i<j)

        {

            while(i<j&&arr[j]>=pivot)

            {

                j--;

            }

            if (i<j)

            {

                arr[i] = arr[j];

                i++;

                while(i<j&&arr[i]<=pivot)

                {

                    i++;

                }

                if (i<j)

                {

                    arr[j] = arr[i];

                    j--;

                }

            }

        }

        arr[i] = pivot;

        return i;

    }

    void quicksort(int arr[], int left, int right)

    {

        if (left<right)

        {

            int pivotpos = partition(arr, left, right);

            quicksort(arr, left, pivotpos-1);

            quicksort(arr, pivotpos+1, right);

        }

    }

    void main()

    {

        int arr[] = {38, 65, 65, 20, 47, 54, 01, 12, 27};

        int len = sizeof(arr)/sizeof(int);

        quicksort(arr, 0, len-1);

        for(int i=0; i<len; i++)

        {

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

        }

        printf(" ");

    }

    //result

    # ./sort
    1 12 20 27 38 47 54 65 65

    Finally:

    据说,C++ 标准库里就有qsort,这个就是快速排序。

    可是,正在用C的同学怎么办,无他 ,就用上面这段代码去改吧。模板我可以保证没有错误!!!

  • 相关阅读:
    BZOJ 2064: 分裂( 状压dp )
    BZOJ 2096: [Poi2010]Pilots( set )
    BZOJ 3444: 最后的晚餐( )
    BZOJ 3156: 防御准备( dp + 斜率优化 )
    BZOJ 1770: [Usaco2009 Nov]lights 燈( 高斯消元 )
    BZOJ 2466: [中山市选2009]树( 高斯消元 )
    BZOJ 1316: 树上的询问( 点分治 + 平衡树 )
    codevs 1074
    bzoj 1015
    bzoj 1798
  • 原文地址:https://www.cnblogs.com/woodzcl/p/8038654.html
Copyright © 2011-2022 走看看