作者 主題: 請問排序的相反  (閱讀 4023 次)

0 會員 與 1 訪客 正在閱讀本文。

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
請問排序的相反
« 於: 2015-05-23 07:51 »
大家早 ...
先分享一下 : 根據研究 , 睡夢中的思考能力比醒著時快
小弟是深信不疑 ... 只可惜一覺醒來 , 還是想不出好辦法
(不知道是不是英國研究的 ... 小弟個人是滿喜歡英國研究的報導)

 :P

一物件中許多雜湊 , 依 t=絕對時間 排序著:
t=1,資料=...
t=1,資料=...
t=2,資料=...
t=3,資料=...
.....

若希望順序是上下的 t 值不相等 , 即
t=1,...
t=2,...
t=1,...
t=3,...
(許多種答案之一種即可)

若某值如 t=2 超過半數時 , 寧可塞 t=null,null,null...(有 1970 年以前的資料)
例如

t=1,...
t=2,...
t=2,...
t=2,...
t=2,...
t=3,...
變成
t=2,...
t=1,...
t=2,...
t=3,...
t=2,...
t=null,null,...
t=2,...

1.
不能一開始就塞 t=0
這樣雜湊長度就變太長了

2.
處理速度是首選 , 目前也還不知什麼方法最快
另外也一邊思考著會不會太耗記憶體 (純程序邏輯)
或需不需要暫存檔 (借由 linux 的 join paste 或不同程式語言)


思考
代碼: [選擇]
while (count(old_array)>0){
    list (old_array){
        if (t不同) 移動到 tmp_array
        else 移動到底部
    }
}

但資料多時 , 這樣的純程序
恐怕不比 linux 指令 split 切一半 , 兩檔合併 (又有過半數問題)

目前想到這裡 ... 所以上來請教
不知有沒有 unsort 這類指令或函數 ?
或有比較有效率的邏輯 ?


謝謝!!