拖拉排序的演算法
我們做一些系統的時候需要會需要讓使用者對某個 產品和 類別進行排序。
這時候我們就需要把哪個實體加乙個叫做displayorder的屬性了
上公升和下降的話只要求 把兩個displayorder對換一下就行了。
但是拖拉的話是不一樣,就不能是簡單的交換了而是需要將 displayorder插入到前面
例如我們有
name displayorder
a 1
b 2
c 3
d 4
e 5
f 6
g 7
我們要將g拉到c前,我們就必須把 g的displayorder設成c
然後把 c的設成d的,把d的設成e的,e的設成f的 f的設成g的。
但是這樣的效率是比較差的。特別是在sql當中如果這樣寫的話可能會比較麻煩的。
因為displayorder至少都是相差為1我們可以用乙個更簡單的方式來實現它
就是把 c和它後面的所有displayorder全部+1但是這樣的演算法效率似乎還不是最好的。
因為如果是乙個比較遠距離的拖動我們就得更改好多項了。
乙個更好的方式是 displayorder 相差的值不是為1。這樣就可以在某些程度下做到當把g的displayorder設成c的。 而c+1不會跟d重複。從而降低更新。
乙個簡單的ThreadPool分析
專案是多執行緒的,所以引入了執行緒池這個東西。池子是個老美寫的。在專案中表現的還不錯。所以把它摘出來,介紹給以後或許需要用到它的同行們。關於為什麼要採用threadpool,原文已經提到了 建立乙個執行緒是需要開銷的 如果執行緒數量過大的話,cpu就會浪費很大的精力做執行緒切換。threadpool...
乙個簡單的詞法分析程式
這是我們的編譯原理課程的第乙個實驗,蠻簡單的,或者說我寫得蠻簡單。當然會有更好的實現方法呵呵 實驗名稱 詞法分析程式設計 目的與要求 1 掌握詞法分析器的構造過程以及基本方法 2 理解正規式 nfa dfa及最小化dfa的轉換過程和方法。實驗內容要點 給定乙個正規式r xy yx y xyx,號為上...
乙個簡單的監控木馬分析
很老的乙個樣本,簡單的分析下練手 一.樣本概述 樣本主要行為 程式安裝後偽裝成移動客戶端 執行後需要啟用裝置管理器,防止被裝置管理器刪除 二.詳細分析流程 1.程式啟動 2.啟用裝置管理器 2.解密配置資訊 通過des解密後寫配置資訊 key為staker 還原後 如下 會生成乙個明文的配置檔案 該...