排序及查找方法
#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;}
}
}
- 最新文章
- 数据结构教程第四课算法效率的度量和存储空间需求[01-04]
- 数据结构教程第六课线性表的顺序表示和实现[01-04]
- 数据结构教程第八课线性表的链式表示与实现[01-04]
- 数据结构教程第七课实验一线性表的顺序存储实验[01-04]
- 数据结构教程第九课循环链表与双向链表[01-04]
- 数据结构教程第十课栈的表示与实现[01-04]
- 相关文章
- Mac OS X 启用超级用户的方法[01-04]
- 软件架构浅谈:问题域及其解决方法[01-04]
- MIS开发中软件工程方法的运用[01-04]
- j2sdk 与 Tomcat5配置方法与注意事项[01-04]
- SOA方法学与面向服务的分析和设计[01-04]
- uml 面向对象的开发方法[01-04]
