Re: 排序問題

看板Perl作者 (零式札克)時間18年前 (2006/10/24 01:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《reizarc (零式札克)》之銘言: : my @a = ( "abc 1 6 3 1 5 6", # data input : "def 2 5 5 1 8 3", : "ghi 4 7 2 0 8 9", : "jkl 4 5 5 1 8 2", : "mno 2 7 5 1 8 9", : "pqr 1 6 5 1 8 3" ); : @a = map{ $_->[ 0 ] } # 轉回 : sort{ $a->[ 4 ] <=> $b->[ 4 ] or # 排序 : $a->[ 2 ] <=> $b->[ 2 ] or : $a->[ 3 ] <=> $b->[ 3 ] } : map{ [ $_, split ] } @a; # 轉換 因為有高手建議更佳的 GRT 轉換解法 看了一下之後發現也非常有趣 我把同樣的問題的解法寫在下面 讓自己練習也希望對大家有玩排序時有幫助 :p my @a = ( "abc 1 6 3 1 5 6", # data "def 2 5 5 1 8 3", "ghi 4 7 2 0 8 9", "jkl 4 5 5 1 8 2", "mno 2 7 5 1 8 9", "pqr 1 6 5 1 8 3" ); @a = @a[ map{ unpack "N", substr( $_, -4 ) } # 轉回來 sort map{ pack( "NNNN", # 轉換成字串 ( split " ", $a[ $_ ] )[ 3, 1, 2 ], $_ ) } ( 0 .. $#a ) ]; 像這樣把全部的問題都轉換成最有效率的 ascii 排序 應該是 GRT 作法的重點所在 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.170.17 ※ 編輯: reizarc 來自: 61.216.170.17 (10/24 01:26)
文章代碼(AID): #15FFNl7a (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
5
8
完整討論串 (本文為第 4 之 4 篇):
5
8
1
1
18年前, 10/19
18年前, 10/19
文章代碼(AID): #15FFNl7a (Perl)