• 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的同学怎么办,无他 ,就用上面这段代码去改吧。模板我可以保证没有错误!!!

  • 相关阅读:
    正则元字符总表
    Request中的各种地址
    JSONP实例
    【Kindeditor编辑器】 文件上传、空间管理
    【加密算法】SHA
    【加密算法】DES
    【加密算法】3DES
    【加密算法】Base64
    【加密算法】MD5
    【加密算法】AES
  • 原文地址:https://www.cnblogs.com/woodzcl/p/8038654.html
Copyright © 2020-2023  润新知