设为首页 加入收藏

TOP

堆排序算法的过程演示
2014-11-23 21:36:47 】 浏览:459
Tags:排序 算法 过程 演示

  /*


  Name: heapsort2.c


  Author: zhuqing


  Description: 堆排序算法的过程演示


  Date: 18-08-03 09:50


  Copyright:


  */


  #include


  #define N 6


  int k,j;


  /* 建堆函数 */


  void build(int *a,int i,int n){


  int tmp;


  k=i;


  j=2*k+1;


  while(j<=n){


  if(j


  j++;


  if(a[k]>=a[j])break;


  tmp=a[k];


  a[k]=a[j];


  a[j]=tmp;


  k=j;


  j=2*j+1;


  }


  }


  /* 打印数组函数 */


  void prnt(int *a,int n){


  int i;


  printf("\n");


  for(i=0;i


  printf("%3d",a[i]);


  }


  printf("\n");


  }


  /* 打印堆函数 */


  void prnthp(int *a,int b1,int b2){


  int size;


  int h=0,sum=0,item=1;


  int i,j,cnt,start,tmp;


  size=b2-b1+1;


  while(sum<=size){


  sum+=item;


  h++;


  item*=2;


  }


  item=1;


  cnt=0;


  start=b1;


  tmp=1;


  printf("\n--------------------------------------------\n");


  printf(" 堆:\n");


  while(1){


  for(i=0;i


  for(j=0;j


  printf(" ");


  for(j=0;j


  for(j=0;j


  if(cnt>size-1)goto end;


  printf("%4d",a[cnt++]);


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇用非对称密码算法制作共享软件的.. 下一篇用栈实现迷宫问题求解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目