投資致富的步驟,要先找投資標的,然後擬定策略,再來是機械式的操作。在操作的過程,不斷的修正策略,直到策略是有效的為止。 巴菲特: 「 人生就像 雪球 。最重要的東西,是找濕漉漉的雪,以及找座斜坡夠長的山。」 濕漉漉的雪代表的是利率,斜坡夠長的山指的是時間。困難的是投資標的,因此被動式指數型基金就是投資人最佳選擇。 最近我試著用資料結構 ( 演算法 ) 的角度,看待投資策略這件事。 資料結構: 排序 (Sorting) 是指將一群資料,按特定規則調換位置,使資料具有某種次序關係 ( 遞增或遞減 ) 。 時間複雜度 n 當資料量相當大時,排序演算法所花費的時間就顯得相當重要。 n 排序演算法的時間複雜度可分為最好情況 (Best Case) 、最壞情況 (Worst Case) 及平均情況 (Average Case) 。最好情況就是資料已完成排序,例如原本資料已經完成遞增排序了,如果再進行一次遞增排序所使用的時間複雜度就是最好情況。 n 最壞情況是指每一鍵值均須重新排列,簡單的例子如原本為遞增排序重新排序成為遞減,就是最壞情況 空間複雜度 n 空間複雜度就是指演算法在執行過程所需付出的額外記憶體空間。 n 例如所挑選的排序法必須藉助遞迴的方式來進行,那麼遞迴過程中會使用到的堆疊就是這個排序法必須付出的額外空間。 n 另外,任何排序法都有資料對調的動作,資料對調就會暫時用到一個額外的空間,它也是排序法中空間複雜度要考慮的問題。排序法所使用到的額外空間愈少,它的空間複雜度就愈佳。例如氣泡法在排序過程中僅會用到一個額外的空間,在所有的排序演算法中,這樣的空間複雜度就算是最好的。 排序法舉例及分析 選擇排序法是從所有待排序的資料中找出最小 ( 或最大 ) 鍵值,將該筆記錄與第一筆記錄對調後,再從第二筆以後的資料中重覆做一樣的動作,直到完成排序為止。 n 無論是最壞清況、最佳情況及平均情況都需要找到最大值 ( 或最小值 ) ,因此其比較次數為: (n-1)+(n-2)+(n-3)+…+3+2+1=n(n-1)/2 次;時間複雜度為 O(n 2 ) n 由於選擇排序是以最大或最小值直接與最前方未排序的鍵值交換,資料排列順序很有可能被改變,故不是穩定排序法。 n ...