• 最易理解的qsort排序算法


    快速排序算法程序可以写得千奇百怪,但最易理解的个人认为仍是下面的:

    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    
    void swap(int *a ,int *b)
    {
        int t = *a;
        *a = *b;
        *b = t;
    }
    
    int partition(int array[],int l,int r)
    {
        int pivot = array[r];
        int curpos = l;
        int j ;
    
        for( j = l;j<r;j++)
        {
            if(array[j] < pivot)
            {
                swap(&array[j],&array[curpos]);
                curpos++;
            }
        }
    
        swap(&array[r],&array[curpos]);
        return curpos;
        
    }
    
    void quicksort(int array[],int l,int r)
    {
        int interval;    
        if(l < r)
        {
            interval = partition(array,l,r);
            quicksort(array,l,interval-1);
            quicksort(array,interval+1,r);
            
        }
            
    }
    
    
    int test_quicksort()
    {
        int number = 10000000;
        printf("hehe:%d
    ",number);
        int *array = (int*) malloc(number*sizeof(int));
        if (array == NULL)
        {
            printf("malloc failed
    ");
            return -1;
        }
        int i;
    
        printf("----------------------------------------before quick sort--------------
    ");
        srand(time(NULL));
        for(i = 0;i<number;i++)
        {
            array[i] = rand()%100000000;
            //printf("	array[%d] = %d
    ",i,array[i]);
        }
    
        printf("----------------------------------------after quick sort-----------------
    ");
        
        quicksort(array,0,number-1);
        for(i = 0;i<number;i++)
        {
            //printf("	array[%d] = %d
    ",i,array[i]);
        }
        printf("ok
    ");
        return 0;
    }
    int main()
    {
        test_quicksort();
    }

    没有注释,也懂吗?

    /***********************************************

    看书看原版,原汁原味。

    不会英文?没关系,硬着头皮看下去慢慢熟练,才会有真正收获。

    没有原书,也要网上找PDF来看。

    网上的原版资料多了去了,下载东西也到原始下载点去看看。

    你会知其所以然,呵呵。

    ***********************************************/

  • 相关阅读:
    「疫期集训day11」沙漠
    「树形DP」洛谷P2607 [ZJOI2008]骑士
    「疫期集训day10」玫瑰
    「疫期集训day9」七月
    核心容器(概念)
    初识Spring
    IOC(控制反转思想)原型理论推导
    图片在上,文字在下并且等间距的三个菜单按钮
    编写登陆接口
    001使用gltf创建3d模型
  • 原文地址:https://www.cnblogs.com/dpblue/p/3921379.html
Copyright © 2020-2023  润新知