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

  • 相关阅读:
    VRChat简易教程1-开发环境准备(SDK)
    BeatSaber节奏光剑插件开发官方教程2-简单的插件示例
    BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板
    BeatSaber节奏光剑双手柄MR教程
    第四章 HTML与JavaScript
    第二章数据和判定
    蓝港在线笔试经验
    数据结构总复习(查找)
    数据结构总复习(3)
    数据结构总复习(2)
  • 原文地址:https://www.cnblogs.com/woodzcl/p/8038654.html
Copyright © 2011-2022 走看看