几种常用的查找和排序算法
<P>#include <malloc.h>
#include<stdio.h>
#define N 11
/*用监视哨查找*/
int search(int array[],int n,int k)
{int i;
i=n-1;
array=k;
while(array!=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) return(mid);
else if(k<array) j=mid-1;
else i=mid+1;
}
return(0);
}</P>
<P>/*冒泡排序法*/
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>array)
{a=array;
array=array;
array=a;}
}
/*直接插入排序*/
void insertsort(int array[])
{int i,j;
for(i=2;i<N;i++)
{array=array;
j=i-1;
while(array<array)
{array=array;
array=array;
}
}
}
/*建立*/
void creat(int array[])
{int i;
printf("enter the array:\n");
for(i=1;i<N;i++)
scanf("%d",&array);
}</P>
<P>/*显示*/
void print(int array[])
{int i;
printf("The numbers after sort is:\n");
for(i=1;i<N;i++)
printf("%d ",array);
printf("\n");
}</P>
<P>
main()
{int a,i,x,chang;
/*printf("enter the array\n");
for(i=1;i<11;i++)
scanf("%d",&a);*/</P>
<P>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 enter 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;
}</P>
<P> case 4:
{creat(a);
mpsort(a);
print(a);
goto aga;
}</P>
<P> case 5:{ printf("exit!\n");break;}
default:{printf("Error!\n"); goto aga;}
}
}
</P>
[此贴子已经被作者于2004-6-3 12:16:43编辑过] <P>不错!</P> 有没有奇偶校验排序的算法!! <P>不错!顶一下!!!</P> hao 顶一个,很好,谢谢分享,加油,大家一起努力,:lol 不错,还是不错~整理成文件可下载就更好了 看起来蛮熟悉的 呵呵,看大家评论如何 看看、、、
页:
[1]
2