㈠ 幫忙寫一個演算法,用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]!='