Kadane’s Algorithm

功能:解 [[Maximum subarray problem]] 方法:如果現在累積的子序列和,小於現在指向的數字,就重新開始累計 Time Complexity: O(n) Space Complexity: O(1) 數學: 如果已知 A[:i] 的 max sum,那麼 A[:i+1] 的 max sum 必定包含或不包含 A[:i] 的 prefix。 reference: https://www.shubo.io/maximum-subarray-problem-kadane-algorithm/ 快速記法: 因為你累計的和,比現在的數字小,前面的就沒用了,留現在的就好

January 9, 2024 · 1 min · hpc

Branchless Programming

硬體中的分支預測器(Branch Prediction)會影響程式的速度 如果loop中的if一直猜錯會降低程式速度 例如下面的程式array有沒有sort,就會影響速度 for (int i = 0; i < N; i++) if (a[i] < P) s += a[i]; https://en.algorithmica.org/hpc/pipelining/branching/

December 19, 2023 · 1 min · hpc

重新啟動寫部落格計畫

用[[logseq]]後我開始覺得做筆記時輕鬆可維持的,有點像我之前開始記賬或者是健身記錄的時候 我不擅長寫長文,這種隨手記的方式比較適合我。有空時可以再整理成完整文章發布 再加上[[ChatGPT]]的流行我覺得可以從這些零散的筆記中的到資訊 並且使用[[ChatGPT]]幫我整理並潤飾語法

October 12, 2023 · 1 min · hpc