排序的各种方法

2016-02-19 13:27 2 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的排序的各种方法,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】


  #include "stdio.h"
  #include "malloc.h"
  #include "conio.h"
  #define maxsize 5
  typedef strUCt{
  int key;
  }redtype;
  typedef struct{
  redtype *r;
  int length;
  }sqlist;
  ;
  ;
  ;
  void shellsort(sqlist l,int d)
  {
  int i,j;
  d=l.length/2;
  while(d0)
  {
  for(i=d+1;i=l.length;++i)
  if(l.r[i].keyl.r[i-d].key)
  {
  l.r[0]=l.r[i];
  for(j=i-d;j0&&l.r[0].keyl.r[j].key;j-=d)
  l.r[j+d]=l.r[j];
  l.r[j+d]=l.r[0];}
  d=d/2;}
  }
  ;
  ;
  ;
  void quicksort(sqlist l,int low,int high)
  {int i,j;
  if(lowhigh)
  {i=low;j=high;l.r[0]=l.r[i];
  do
  {
  while(ij&&l.r[j].keyl.r[0].key)
  --j;
  if(ij)
  {l.r[i]=l.r[j];++i;}
  while(ij&&l.r[i].key=l.r[0].key)
  ++i;
  if(ij){
  l.r[j]=l.r[i];--j;
  }
  }while(i!=j);
  l.r[i]=l.r[0];
  quicksort(l,low,i-1);
  quicksort(l,i+1,high);
  }
  }
  ;
  ;
  ;
  void heapadjust(sqlist l,int s,int m)
  {
  int rc,j;
  rc=l.r[s].key;
  for(j=2*s;j=m;j*=2)
  {
  if(jm&&l.r[j].keyl.r[j+1].key)
  j++;
  if(rcl.r[j].key)
  break;
  l.r[s].key=l.r[j].key;
  s=j;
  }
  l.r[s].key=rc;
  }
  ;
  ;
  ;
  void heapsort(sqlist l)
  {
  int i,t;
  for(i=l.length/2;i0;i--)
  heapadjust(l,i,l.length);
  for(i=l.length;i1;i--)
  {
  t=l.r[1].key,l.r[1].key=l.r[i].key,l.r[i].key=t;
  heapadjust(l,1,i-1);
  }
  }
  ;
  ;
  ;
  void oesort(sqlist l,int n)
  {
  int t,i,change;
  change=1;
  while(change)
  {
  change=0;
  for(i=1;in;i+=2)
  if(l.r[i].keyl.r[i+1].key)
  {
  t=l.r[i].key,l.r[i].key=l.r[i+1].key,l.r[i+1].key=t;
  change=1;
  }
  for(i=2;in;i+=2)
  if(l.r[i].keyl.r[i+1].key)
  {
  t=l.r[i].key,l.r[i].key=l.r[i+1].key,l.r[i+1].key=t;
  change=1;
  }
  }
  }
  ;
  ;
  ;
  main()
  {
  int i,j,low,high,a[maxsize+1];
  char ch;
  sqlist l;
  clrscr();
  l.r=(redtype *)malloc(maxsize*sizeof(int));
  if(!l.r)
  printf("overflow");
  l.length=0;
  printf("please input five elements:");
  for(i=1;imaxsize+1;i++)
  {
  scanf("%d",&a[i]);
  l.length++;
  }
  getchar();
  do
  {
  for(j=1,i=1;jmaxsize+1;i++,j++)
  l.r[i].key=a[j];
  printf("Welcome to use PanWeiFeng's KeChenSheJi");
  printf("s:shellsortq:quicksort");
  printf("h:heapsorte:oesort");
  printf("o:quit");
  printf("please input the way:");
  ch=getchar();
  clrscr();
  printf("the orignal array:");
  for(i=1;imaxsize+1;i++)
  printf("%d ",l.r[i].key);
  printf("");
  /*printf("please input the way:");
  ch=getchar();*/
  getchar();
  switch(ch)
  {
  case 's':
  shellsort(l,l.length);
  printf("the  odered  arry:");
  for(i=1;imaxsize+1;i++)
  printf("%d ",l.r[i].key);
  printf("");
  break;
  case 'q':
  low=1;high=l.length;
  quicksort(l,low,high);
  printf("the  odered  arry:");
  for(i=1;imaxsize+1;i++)
  printf("%d ",l.r[i].key);
  printf("");
  break;
  case 'h':
  heapsort(l);
  printf("the  odered  arry:");
  for(i=1;imaxsize+1;i++)
  printf("%d ",l.r[i].key);
  printf("");
  break;
  case 'e':
  oesort(l,l.length);
  printf("the  odered  arry:");
  for(i=1;imaxsize+1;i++)
  printf("%d ",l.r[i].key);
  printf("");
  break;
  case 'o':
  exit(0);
  default:
  printf("error!write again!");
  }
  }while(1);
  }
  
  
  点这里下载

来源:http://www.tulaoshi.com/n/20160219/1604346.html

延伸阅读
标签: 小孩
婴儿干呕 各种方法治愈干呕 宝宝小的时候有很多突发的情况,比如干呕,多数是因为喂奶的时候姿势不当,导致的,还会是宝宝在吃奶的时候太着急这样就会不好消化导致的干呕,今天图老师小编就给大家详细的介绍一下这方面的知识,感兴趣的朋友可以来看看哦。 消化功能异常 全身感染性疾病,如果患有上呼吸道感染...
标签: Web开发
在前面的文章中我简单总结了一个CSS在页面布局中实现div水平居中的方法,其实水平居中实现还是比较简单的,反而垂直居中有点麻烦,因为我们设计页面的时候往往水平宽度都是固定的。因此我们有必要总结一下在页面布局过程中实现垂直居中的方法。     在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置...
标签: Web开发
在Web标准中的页面布局是使用Div配合CSS来实现的。这其中最常用到的就是使整个页面水平居中的效果,这是在页面布局中基本,也是最应该首先掌握的知识。不过,还是经常会有人问到这个问题,在这里我简单总结一下使用Div和CSS实现页面水平居中的方法: 一、margin:auto 0 与 text-aligh:center     在现代浏览器(如Internet E...
标签: ASP
  最近做在做项目,涉及到文件上载的问题,找来资料研究了一下。当用户需要将文件传输到服务器上时,常用方法是使用FTP方式,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。如果我们能把文件上载功能与Web集成,使用户仅用Web浏览器就能完成上载任务,这对于他...
标签: 男人养生
秋季如何养生 秋季男人养生的各种方法 很多男人都忙于工作、压力很大,多有熬夜和嗜烟酒的习惯,这都会从一定程度上造成身体的不健康,秋季来临,天气转凉,此时男人需要进行适当的养生,可以通过各种方法来增强体质、预防疾病。那么秋季男人如何养生呢?一起来看看吧! 目录 1、秋季男士如何养生 2、秋季男...

经验教程

204

收藏

51
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部