zoukankan      html  css  js  c++  java
  • 堆排序

    堆排序具有合并排序(时间复杂度O(nlgn)低)和插入排序(空间消耗少)的优点。

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<time.h>
    #define MAX 10
    int size;
    int MAX_Heapify(int A[],int i)
    {
     int l,r,largest;
     l = i*2+1;
     r = i*2 + 2;
     if(l < size && A[l] > A[i])
      largest = l;
     else
      largest = i;
     if(r < size && A[r] > A[largest])
      largest = r;
     if(largest != i)
     {
      int tmp = A[i];
      A[i] = A[largest];
      A[largest] = tmp;
      MAX_Heapify(A,largest);
     }
     return 0;
    }
    int build_heap(int A[])
    {
     int i;
     for(i = (size-1)/2;i>=0;i--)
      MAX_Heapify(A,i);
     return 0;
    }
    int heap_sort(int A[])
    {
     int i,tmp;
     build_heap(A);
     for(i = size-1;i>0;i--)
     {
      tmp = A[0];
      A[0] = A[i];
      A[i]=tmp;
      size--;
      MAX_Heapify(A,0);
     }
     return 0;
    }
    
    int test()
    {
     int a[10],i;
     for(i = 0;i<10;i++)
     {
      a[i] = rand();
      printf("%d	",a[i]);
     }
     size = sizeof(a)/sizeof(int); 
     heap_sort(a);
     size = sizeof(a)/sizeof(int);
     for(i=0;i<MAX;i++)
      printf("%d	",a[i]);
     return 0;
    }
    int main()
    {
     test();
     return 0;
    }
  • 相关阅读:
    AS中Loading 的加载
    视频类的相关加载
    2012、10、05 听课笔记
    2012、09、27 听课笔记
    小程序的编写—2
    小程序的编写—1
    2012、9、28 听课笔记
    GCD
    CFHTTP
    获取当前时间字符串
  • 原文地址:https://www.cnblogs.com/weilq/p/3467812.html
Copyright © 2011-2022 走看看