《C程序设计》算法归纳
出处:www.examlink.com 作者:小罗 日期:2007年01月23日 13时35分
插入法排序
int a[N];
/* 省略数组输入(见上:冒泡法)*/
for(i=1;i<N;i++)
{m=a;
j=i-1;
while(j>=0&&m>a[j])
{a[j+1]=a[j];
j--;
}
a[j]=m;
}
/* 省略数组输出(见上:冒泡法)*/
数列中查找一个关键字
(1)折半法
BinarySearch(a,n,x,j)
k=0;
m=n-1;
while(k<=m)
{
j=(k+m)/2;
if(x==a[j]) exit;
else if(x<a[j]) m=j-1;
else k=j+1;
}
if(k>m) j=0;
printf("%d",j);
(2)顺序查找法
int a[N];
/* 省略数组输入(见上:冒泡法)*/
for(i=0;i<N;i++)
if(x==a)
{printf("找到!序号为:%d\n",--i);
break;
}
if(i==8)
printf("没找到!");
(3)快速顺序查找法
int a[N];
/* 省略数组输入(见上:冒泡法)*/
a[N-1]=x;
i=0;
while(a!=x) i++;
if(i<N-1) printf("找到!序号为:%d\n",i);
else printf("没找到!");
汉诺塔(Hanoi)问题
Hanoi(n,X,Y,Z)
if(n==1)
move(X,1,Z);
else
{
Hanoi(n-1,X,Z,Y);
move(X,n,Z);
Hanoi(n-1,Y,X,Z);
}
最后更新时间:2008-05-28 11:40:37