㈠ 帮忙写一个算法,用c语言
数值下标是从0开始的,array[0...5,0...7]
(1)数组A的体积=6(行)×8(列)×6(字节)=288(字节)
(2)数组A的最后一个元素a57的第一个字节的地址:
LOC(5,7)=LOC(0,0)+ ( 5×8+7 )×6 = 1000 (基地址)+ 282 = 1282
(3)按行存储时,元素a14的第一个字节的地址:
LOC( 1,4 ) = LOC( 0,0 ) + ( 1×8+4 )×6 = 1000 + 72 = 1072
(4)按列存储时,元素嗄7的第一个字节的地址:
LOC( 4,7 ) = LOC( 0,0 ) + ( 7×6+4 )×6 = 1000 + 276 = 1276
㈡ 用c语言写一个算法(折半或二分法),实现可以选择1到20的从小到大以
解:用有序列插入法排序,过程如下:
第一步:7 1 (前两个数7,1排成有序列)
第二步:7 3 1 (第3个数3按要求插入到已排好的有序列中)
第三步:12 7 3 1 (第4个数12按要求插入到已排好的有序列中)
第四步:12 8 7 3 1 (第5个数8按要求插入到已排好的有序列中)
第五步:12 8 7 4 3 1 (第6个数4按要求插入到已排好的有序列中)
第六步:12 9 8 7 4 3 1 (第7个数9按要求插入到已排好的有序列中)
第八步:12 10 9 8 7 4 3 1 (第8个数10按要求插入到已排好的有序列中)
这时各数的顺序就是符合要求的最终顺序.
用折半插入排序法,将新数据6插入到上面的有序列中,算法步骤设计如下:
第一步:把新数据6与逗中间位置地的数据8比较,由于6<8,所以应将6放到8的右边的一半有序列中,即应放到有序列7,4,3,1中.
第二步:把6与有序列7,4,3,1逗中间位置地的数据4比较,由于4<6,所以应将6放到4的左边的一半有序列中,即应放到有序列7,4中.
第三步:把6与有序列7,4逗中间位置地的数据7比较,由于7>6,所以应将6放到7的右边的一半有序列中,至此排序完成,得到一新的有序列
12,10,9,8,7,6,4,3,1
㈢ 一个简单的小程序 C语言 BF算法
引用没问题,就是BF函数错了。
#include<stdio.h>
#include<string.h>
#include<iostream>//.h去掉
usingnamespacestd;//命名空间
intBF(charS[],charT[])
{
inti,j,start;
i=0;
j=0;
start=0;
while(S[i]!='