[問題] sort 有辦法由低位數排序嗎?

看板Linux作者 (sppmg)時間9年前 (2017/02/03 23:09), 9年前編輯推噓12(12019)
留言31則, 6人參與, 最新討論串1/1
我的意思是,原始資料如下: 003 074 177 760 能否排序成 760 003 074 177 這樣,由右方開始依序往左比對。 如果sort不能的話,Linux上有辦法用簡單script達成嗎? 其實是剛剛對發票想到的啦!每次對發票都有這煩惱,不過對完就忘了 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.188.151 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1486134542.A.1C8.html

02/03 23:10, , 1F
還要手動輸入(?
02/03 23:10, 1F
排序來源是中獎號,發票號就直接看拉! 中獎號手打就好了,n個月才一次,不用搞到抓網頁資料吧! ※ 編輯: sppmg (114.32.188.151), 02/03/2017 23:30:03

02/03 23:48, , 2F
這是character array的排序,要如何排比較快?
02/03 23:48, 2F

02/03 23:50, , 3F
先練習迴文再轉成interger候用qsort比較快。 記得訂id.
02/03 23:50, 3F

02/03 23:52, , 4F
cat file.txt | rev | sort -n | rev
02/03 23:52, 4F

02/03 23:52, , 5F
上面這樣符合需求嗎?
02/03 23:52, 5F
讚!以前似乎看過rev,但從來沒用過就忘記它了。 昨天洗澡時想到tac,但出來就忘了 XD 剛剛 man tac 也有看到 SEE ALSO rev(1)

02/03 23:54, , 6F
樓上很厲害! 如果原PO覺得這樣夠快就先這樣吧。
02/03 23:54, 6F

02/04 00:02, , 7F
因為sort的時候要大量存取記憶體,電腦記憶體很慢...
02/04 00:02, 7F

02/04 00:06, , 8F
k大這行指令已經很快,但pipe寫入另一塊空間花時間。
02/04 00:06, 8F
pipe不是不佔空間嗎?不清楚其核心處理方式,難道說有記憶體暫存區?

02/04 00:07, , 9F
如果divide and conqure可以用在OpenCL存取主記憶體
02/04 00:07, 9F

02/04 00:09, , 10F
則排序應該可以更快,因為OpenCL存取速度較快。
02/04 00:09, 10F

02/04 00:10, , 11F
找找看有沒有compiler的函數可以這麼做,就是GPGPU的一
02/04 00:10, 11F

02/04 00:10, , 12F
個不錯的應用,OpenACC如果不用加入標籤自動處理應該可
02/04 00:10, 12F

02/04 00:11, , 13F
以達到您的需求。
02/04 00:11, 13F

02/04 00:16, , 14F
因為OpenCL可以用GPU內部很快的Cache及更快讀主記憶體
02/04 00:16, 14F

02/04 00:22, , 15F
以上純屬虛構
02/04 00:22, 15F

02/04 00:35, , 16F
a大 又跳出來娛樂大夥了呀!辛苦了呀,新年快樂喔!
02/04 00:35, 16F

02/04 00:36, , 17F
若要改用其他 script language 處理也可以
02/04 00:36, 17F

02/04 00:37, , 18F
python 來說也很簡單方式就達成這個需求
02/04 00:37, 18F

02/04 00:37, , 19F
https://tinyurl.com/hdrv3df 不確定是在intel compile
02/04 00:37, 19F

02/04 00:38, , 20F
result = sorted(['003', '074', '177', '760'],
02/04 00:38, 20F

02/04 00:38, , 21F
key=lambda n: int(n[::-1]) ) 這樣,一行,提供參考
02/04 00:38, 21F

02/04 00:38, , 22F
r還是intel mkl或是intel parallel studio裡面~_~"
02/04 00:38, 22F

02/04 00:39, , 23F
最後搭配讀取檔案產生 list 給 sorted 使用即可
02/04 00:39, 23F

02/04 00:42, , 24F
opencl + gpu ??? 拿牛刀來殺雞
02/04 00:42, 24F
我感覺像是做太空梭去街口7-11 XD

02/04 00:43, , 25F
我覺得平行化領域太多派系,應該化為合作雙贏!
02/04 00:43, 25F

02/04 00:45, , 26F
我們可用舊製程的GPGPU打贏砸大錢隱藏技術的新CPU!!
02/04 00:45, 26F

02/04 00:47, , 27F
沒人說平行化怎樣,只是原貼這問題,你扯太遠了
02/04 00:47, 27F

02/04 00:48, , 28F
前面幾篇文章來看,我只能夠說... 一堆回覆文內容頗...
02/04 00:48, 28F

02/04 00:51, , 29F
樓上你認真了 XD
02/04 00:51, 29F

02/04 02:16, , 30F
小州大你太認真了...
02/04 02:16, 30F

02/04 11:38, , 31F
ㄎㄎ,認真就輸了
02/04 11:38, 31F
感謝kenduest大提供兩種方法以及a34021501大的高階方法。 GPGPU方法是不錯啦!不過這樣主題就變成排序問題而不是由哪位開始排的問題了。 最後再次感謝各位囉! ※ 編輯: sppmg (114.32.188.151), 02/04/2017 16:35:13
文章代碼(AID): #1Ob9qE78 (Linux)
文章代碼(AID): #1Ob9qE78 (Linux)