10计本算法实验棋盘覆盖问题Word格式.docx
- 文档编号:7979858
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:13
- 大小:59.58KB
10计本算法实验棋盘覆盖问题Word格式.docx
《10计本算法实验棋盘覆盖问题Word格式.docx》由会员分享,可在线阅读,更多相关《10计本算法实验棋盘覆盖问题Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
if(start>
stop)return-1;
inti=(start+stop)/2;
if(a[i]==b)returni;
if(a[i]>
b)returnbinsearch(a,start,i-1,b);
returnbinsearch(a,i+1,stop,b);
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannersc=newScanner(System.in);
System.out.println("
输入数组长度"
);
intn=sc.nextInt();
inta[]=newint[n];
输入数组元素"
for(inti=0;
i<
n;
i++)
a[i]=sc.nextInt();
Arrays.sort(a);
System.out.println("
排序后的数组为"
for(inti=0;
a.length;
System.out.print(a[i]+"
"
System.out.println();
System.out.println("
输入要查找的数"
intb=sc.nextInt();
intx=binsearch(a,0,n-1,b);
if(x==-1)
System.out.println(b+"
不在数组中,请输入另一个数"
b=sc.nextInt();
x=binsearch(a,0,n-1,b);
在数组中的第"
+(x+1)+"
个位置"
}
结果:
第二题:
棋盘覆盖
publicclassChessBoard1{
publicstaticint[][]board;
publicstaticvoidchessboard(inttr,inttc,intdr,intdc,intsize)
if(size==1)return;
ints=size/2;
if(dr<
tr+s&
&
dc<
tc+s)
{
board[tr+s][tc+s-1]=1;
board[tr+s-1][tc+s]=1;
board[tr+s][tc+s]=1;
chessboard(tr,tc,dr,dc,s);
chessboard(tr+s,tc,tr+s,tc+s-1,s);
chessboard(tr,tc+s,tr+s-1,tc+s,s);
chessboard(tr+s,tc+s,tr+s,tc+s,s);
}
dc>
=tc+s)
board[tr+s-1][tc+s-1]=2;
board[tr+s][tc+s-1]=2;
board[tr+s][tc+s]=2;
chessboard(tr,tc+s,dr,dc,s);
chessboard(tr,tc,tr+s-1,tc+s-1,s);
chessboard(tr+s,tc,tr+s,tc+s-1,s);
chessboard(tr+s,tc+s,tr+s,tc+s,s);
if(dr>
=tr+s&
board[tr+s-1][tc+s-1]=3;
board[tr+s-1][tc+s]=3;
board[tr+s][tc+s]=3;
chessboard(tr+s,tc,dr,dc,s);
chessboard(tr,tc+s,tr+s-1,tc+s,s);
board[tr+s-1][tc+s-1]=4;
board[tr+s][tc+s-1]=4;
board[tr+s-1][tc+s]=4;
chessboard(tr+s,tc+s,dr,dc,s);
intn=sc.nextInt();
inta=sc.nextInt();
intb=sc.nextInt();
board=newint[n][n];
chessboard(0,0,a,b,n);
for(intj=0;
j<
j++)
if(i==a&
j==b)
{
System.out.print("
特殊"
+"
continue;
}
if(board[i][j]<
10)
0"
+board[i][j]+"
else
System.out.print(board[i][j]+"
System.out.println();
第三题:
合并排序的递归
publicclassmergeSort{
publicstaticint[]b;
publicstaticvoidmergeSort1(int[]a,intleft,intright)
{
if(left<
right)
inti=(left+right)/2;
mergeSort1(a,left,i);
mergeSort1(a,i+1,right);
merge(a,b,left,i,right);
copy(a,b,left,right);
publicstaticvoidmerge(int[]c,int[]d,intl,intm,intr)
inti=l;
intj=m+1;
intk=l;
while((i<
=m)&
(j<
=r))
if(c[i]<
=c[j])
d[k++]=c[i++];
elsed[k++]=c[j++];
if(i>
m)
for(intq=j;
q<
=r;
q++)
d[k++]=c[q];
else
for(intq=i;
=m;
publicstaticvoidcopy(int[]c,int[]b,intleft,intright)
for(inti=left;
=right;
c[i]=b[i];
publicstaticvoidmain(String[]args)
Scannersc=newScanner(System.in);
intn=sc.nextInt();
b=newint[n];
int[]a;
a=newint[n];
for(inti=0;
a[i]=sc.nextInt();
mergeSort.mergeSort1(a,0,n-1);
for(intj=0;
=n-1;
System.out.print(a[j]+"
结果
第四题:
合并排序的非递归
publicclassMergeFDG{
publicstaticvoidmergeFDG(inta[])
int[]b=newint[a.length];
ints=1;
while(s<
a.length)
mergePass(a,b,s);
s+=s;
mergePass(b,a,s);
publicstaticvoidmergePass(int[]a,int[]b,ints)
inti=0;
while(i<
=a.length-2*s)
merge(a,b,i,i+s-1,i+2*s-1);
i=i+2*s;
if(i+s<
merge(a,b,i,i+s-1,a.length-1);
else
for(intj=i;
b[j]=a[j];
publicstaticvoidmerge(int[]c,int[]d,intl,intm,intr)
输入要排序的数组长度"
int[]a=newint[n];
输入"
+n+"
个元素"
a[j]=sc.nextInt();
mergeFDG(a);
System.out.print(a[i]+"
第五题:
快速排序
publicclassQuickSort{
publicstaticint[]a;
publicstaticvoidquicksort(intp,intr)
if(p<
r)
intq=partition(p,r);
quicksort(p,q-1);
quicksort(q+1,r);
publicstaticintpartition(intp,intr)
inti=p,j=r+1;
intx=a[p];
while(true)
while(a[++i]<
x&
r);
while(a[--j]>
x);
if(i>
=j)break;
inttemp=a[i];
a[i]=a[j];
a[j]=temp;
a[p]=a[j];
a[j]=x;
returnj;
a=newint[n];
quicksort(0,n-1);
System.out.print(a[j]+"
五、实验总结
一.第二题中,如果把第二个if语句和第三个if语句对调下,结果就是错的。
结果会变成这样子
这个问题还没考虑清楚。
二.对着书上的代码,把l当成了一,结果出来的全是0。
(粗心)
三.其实老师讲的非递归算法可以不用给我们代码,让我们自己去想,更有助于我们思维能力的提高,就只要在上课的时候把算法讲清楚就好了。
这样子更能检查同学们对上课的内容的理解程度;
不然就算同学们有去做,也是老师做的。
(个人感觉)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 算法 实验 棋盘 覆盖 问题
![提示](https://static.bingdoc.com/images/bang_tan.gif)