当前位置:主页   - 电脑 - 程序设计 - C/C++
排序及查找方法
来源:网络   作者:    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

#include <malloc.h>
#include<stdio.h>
#define N 11
/*用监视哨查找*/
int search(int array[],int n,int k)
{int i;
 i=n-1;
array[0]=k;
while(array[i]!=k) i--;
return(i);
}
/*折半查找法*/
int halfsearch(int array[],int n,int k)
{int i,j,mid;
 i=1;j=n;
while(i<=j)
{mid=(i+j)/2;
 if(k==array[mid]) return(mid);
else if(k<array[mid]) j=mid-1;
      else i=mid+1;
}
return(0);
}

/*冒泡排序法*/
void mpsort(int array[])
{int i,j,a;
a=0;
 for(i=1;i<N;i++)
  for(j=i+1;j<N;j++)
   if(array[i]>array[j])
     {a=array[i];
     array[i]=array[j];
     array[j]=a;}
}
/*直接插入排序*/
void insertsort(int array[])
{int i,j;
 for(i=2;i<N;i++)
 {array[0]=array[i];
j=i-1;
while(array[0]<array[j])
 {array[j+1]=array[j--];
 array[j+1]=array[0];
}
}
}
/*建立*/
void creat(int array[])
{int i;
 printf("enter the array:\n");
 for(i=1;i<N;i++)
 scanf("%d",&array[i]);
}

/*显示*/
void print(int array[])
  {int i;
   printf("The numbers after sort is:\n");
   for(i=1;i<N;i++)
   printf("%d ",array[i]);
   printf("\n");
  }

main()
{int a[11],i,x,chang;
 /*printf("enter the array\n");
 for(i=1;i<11;i++)
 scanf("%d",&a[i]);*/

aga:
 printf("\nchang:1: use watching method finding\n      2:use half method finding\n      3: use directness intsert method sort\n      4:use bubble up method sort\n      5:exit\n");
 scanf("%d",&chang);
 switch (chang)
 {case 1:
       {creat(a);
 printf("Please int the search number:\n");
 scanf("%d",&x);
 printf("The number station is:%d\n",search(a,N,x));
 goto aga;
 }
  case 2:
     { creat(a);
       insertsort(a);
       print(a);
       printf("Please int the search number:\n");
       scanf("%d",&x);
       printf("The number station is:%d\n",halfsearch(a,N,x));
       goto aga;
      }
   case 3:
     {creat(a);
      insertsort(a);
      print(a);
      goto aga;
     }

case 4:
     {creat(a);
      mpsort(a);
      print(a);
      goto aga;
     }

case 5:{ printf("exit!\n");break;}
   default:{printf("Error!\n"); goto aga;}
}
}

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明