演算法程式設計 基礎

2021-08-22 11:27:03 字數 1272 閱讀 1357

基礎運算:

整數/整數 = 整數

浮點數/浮點數 = 浮點數

整數 - 浮點數 = 浮點數  (變為  浮點數 - 浮點數 = 浮點數)

演算法競賽的程式三件事情:

讀入資料、計算結果、列印輸出

不要列印提示資訊, 不需要在列印輸出後「暫停程式」

重要常數定義:

const double pi = acos(-1.0);
c語言的短路策略:

短路的方法計算邏輯表示式,速度快,一旦能夠確定整個表示式的值,就不再繼續計算

編譯器的任務:

把人類可以看懂的源**變成機器可以直接執行的指令

關於陣列:

在演算法競賽中,常常難以精確計算出所需要的陣列的大小,陣列一般會宣告地稍大些。在空間夠用的情況下,浪費一點不會有太大影響。

比較大的陣列應盡量宣告在main函式之外。只有放在外面時,陣列a才可以開得很大;放在main函式內時,陣列稍大就會異常退出

如果要從陣列a複製k個元素到陣列b:memcpy(b, a, sizeof(int)*k)

如果陣列a和b都是浮點型的,複製時要寫成memcpy(b, a, sizeof(double) * k)

(使用memcpy函式要包含標頭檔案string.h)

如果要把陣列a全部複製到陣列b中, 可以寫成memcpy(b, a, sizeof(a))

#include #define maxn 1000000005

int a[maxn];

int main()

(從書上摘錄來,但覺得這個程式輸入沒有終止也)

變數交換幾種方法:

(1)三變數法:

#include int main()
(2)採用加法:

#include int main()
(3)採用異或運算:

#include int main()
以上內容引自 劉汝佳  《演算法競賽入門經典》

程式設計與基礎演算法

演算法 algorithm 是指解題方 而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。乙個演算法的優劣可以用空間複雜度與時間複雜度來衡量。有窮性 finiteness 演算法必須在執行有限個步驟...

GIS演算法 向量(陣列基礎 程式設計基礎)

在程式設計中的應用 有向線段 有一條線段的端點是有先後次序之分的,這條線段即有向線段 directed segment 向量 有限線段p1p2的起點p1在座標原點,把它稱為向量p2 二維向量p x1,y1 q x2,y2 向量加法 p q x1 x2,y1 y2 向量減法 p q x1 x2,y1 ...

一些基礎演算法基礎程式設計思維

1.陣列中兩個元素相加等於指定數的所有組合 僅用一次迴圈且不能建立新的陣列或者集合 思路 從陣列的前後兩端 i 0,j array.lengths 分別利用指標 計數器 來掃瞄陣列,如果滿足相加等於目標則列印,否則當sum 快速尋找滿足條件的兩個 陣列中兩個數的和滿足指定結果 public clas...