zoukankan      html  css  js  c++  java
  • 数据结构快速排序

    它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    代码:

     

    #include<stdio.h>
    #include<stdlib.h>
    int *a;
    int Partition(int a[],int low, int high)
    {
        int i,j,pivot;
        i=low; j=high;
        
        pivot=a[i];
        while(i<j)
        {
            while(i<j&&a[j]>=pivot)
            j--;
            if(i<j)
            a[i++]=a[j];
            while(i<j&&a[i]<=pivot)
            i++;
            if(i<j)
            a[j--]=a[i];
            
        }
        a[i]=pivot;
        return i;
    }
    void QuickSort(int a[], int lower, int higher)
    {
        int pivotpos;
        if(lower<higher)
        {
            pivotpos=Partition(a, lower, higher);
            QuickSort(a, lower, pivotpos-1);
            QuickSort(a, pivotpos+1, higher);
        }
    }
    int main()
    {
        int n,i,j;
        
        printf("Please Input n:");
        scanf("%d",&n);
        a=(int *)malloc(sizeof(int)*(n+1));
        printf("Please input %d integer:\n",n);
        for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
        
        QuickSort(a, 1, n);
        
        printf("After Sort:\n");
        for(j=1;j<=n;j++)
        printf("%d ",a[j]);
        printf("\n");
        
        return 0;
    }
    /*
    Please Input n:8
    Please input 8 integer:
    18 49 59 69 -98 46 -6 67
    After Sort:
    -98 -6 18 46 49 59 67 69
    请按任意键继续. . .
    */ 
  • 相关阅读:
    文件操作
    set集合,深浅拷贝
    is 和 == 区别 id()函数
    字典
    列表
    基本数据类型
    第十二章 if测试和语法规则
    第十一章 赋值、表达式和打印
    第十章 python语句简介
    第九章元组、文件及其他
  • 原文地址:https://www.cnblogs.com/lanshy/p/2978235.html
Copyright © 2011-2022 走看看