回覆列表
-
1 # 天下無賊12312
-
2 # 滴逃逃
即插值法。從要求的數在不在邊界來看,有內插和外插兩種;而從具體的演算法看,又有線性插值和非線性插值。
插值的具體演算法有很多,適用於不同的問題和精度要求。一般查數學物理用表,要求不高的話,可以用簡單的線性內插值。
線性內插值方法是:設要查的關係是y = f(x),要查在x = x0點的數。但已知f(x1)和f(x2),其中x1
( f(x0) - f(x1) ) / (x0 - x1) == ( f(x2) - f(x1) ) / (x2 - x1)
得到。
即有
f(x0) = ((x0 - x1) / (x2 - x1)) * ( f(x2) - f(x1) ) + f(x1)
這就是所要求的插值點。
樓主不難將仿照此方法做出線性外插值。
排序演算法插入法插入法較為複雜,它的基本工作原理是抽出牌,在前面的牌中尋找相應的位置插入,然後繼續下一張#includeiostream.hvoidInsertSort(int*pData,intCount){intiTemp;intiPos;for(inti1;iCount;i++){iTemppData;//儲存要插入的數iPosi-1;//被插入的陣列數字個數while((iPos0)(iTemppData)){//從最後一個(最大數字)開始對比,大於它的數字往後移位pDatapData;iPos--;}pDataiTemp;//插入數字的位置}}voidmain(){intdata{10,9,8,7,6,5,4};InsertSort(data,7);for(inti0;i7;i++)coutdata;cout\n;}其他:第一輪:8,10,7,9-8,10,7,9(交換0次)(迴圈1次)第二輪:9,10,8,7-8,9,10,7(交換1次)(迴圈2次)第一輪:8,9,10,7-7,8,9,10(交換1次)(迴圈3次)迴圈次數:6次交換次數:3次其他:第一輪:8,10,7,9-8,10,7,9(交換0次)(迴圈1次)第二輪:8,10,7,9-7,8,10,9(交換1次)(迴圈2次)第一輪:7,8,10,9-7,8,9,10(交換1次)(迴圈1次)迴圈次數:4次交換次數:2次上面結尾的行為分析事實上造成了一種假象,讓我們認為這種演算法是簡單演算法中最好的,其實不是,因為其迴圈次數雖然並不固定,我們仍可以使用O方法