zoukankan      html  css  js  c++  java
  • 快排序(递归算法)

    #include<stdio.h>
    #include<math.h>
    #define N 10
    void quicksort(int a[],int low,int high);
    int split(int a[],int low,int high);
    main()
    {
      int a[N],i;
      printf("Enter %d numbers to be sorted: ",N);
      for(i=0;i<N;i++)
      {
        scanf("%d",&a[i]);
      }
      quicksort(a,0,N-1);
      printf("In sorted order: ");
      for(i=0;i<N;i++)
      {
        printf("%d  ",a[i]);
    
      }
      printf("\n");
      getch();
    }
    void quicksort(int a[],int low,int high)
    {
       int middle;
       if(low>=high)return;
       middle=split(a,low,high);
       quicksort(a,low,middle-1);
       quicksort(a,middle+1,high);
     }
    int split(int a[],int low,int high)
    {
       int part_element=a[low];
       for(;;){
       while(low<high&&part_element<=a[high])
         high--;
       if(low>=high) break;
       a[low++]=a[high];
    
       while(low<high&&a[low]<=part_element)
         low++;
       if(low>=high) break;
       a[high--]=a[low];
       }
       a[high]=part_element;
       return high;
    }
    
    作者:cpoint
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    数组
    分支.顺序结构
    博客作业-查找
    DS博客作业-图
    DS 数据结构-树
    数据结构-栈,队列
    博客作业05-指针
    C语言博客作业04-数组
    C语言博客作业03——函数
    c语言博客作业02-循环结构
  • 原文地址:https://www.cnblogs.com/cpoint/p/1900291.html
Copyright © 2011-2022 走看看