在某論壇看到這一題,已有人回覆作法。步驟正確但太過複雜,因此嘗試重寫精簡

20080109-01  

 

 

程式流程是先標記含有數值0的那一行的編號,再來就是按照標記的編號刪除資料,因此程式由2個區塊組成


程式標記含有數值0的那一行的編號用迴圈完成,原先看到的作法一樣是用雙迴圈,但在內層迴圈中還有2層的Case Structure外加1個Numeric來傳遞變數,同時做標記動作,每一行若有幾十個0則Case Structure會動作幾十次,很沒有效率的作法


重寫的重點在於內層的迴圈只判定是否含有0,不做標記的動作,外層則依內層判定的結果標記。把那2層的Case Structure和Numeric精簡去除,經測試在資料很多時效率差很大


資料刪除的部分同樣使用迴圈,同樣是從標記編號大的開始刪除。但原先看到的作法是用了2次以上計算來分離出編號,重寫則直接反轉編號陣列,精簡去除計算的部份

20080109-02  

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()