看见一道排序题,练练手。
(编程题)100万个数据,数据值在0~65535之间,请用尽可能少的内存和最快的速度从小到大排序(10分) ? #!perl -w my @TempArray; sub Sort() { ?my (@Array) = @_; ?foreach my $no? (@Array) ?{ ??print "$non"; ??if (defined ($TempArray[$no])) ??{ ???$TempArray[$no]++; ??} ??else ??{ ???$TempArray[$no]=1; ??} ?} } my $Number = $#TempArray; #print "$Number:? @TempArray n"; my $NumberIndex = 0; for(;$NumberIndex<$Number;$NumberIndex++) { ??if (defined ($TempArray[$NumberIndex])) ??{ ???print "$NumberIndex," x $TempArray[$NumberIndex]; ??} } if (defined ($TempArray[$NumberIndex]) && $TempArray[$NumberIndex]>1) { ?print "$NumberIndex," x ($TempArray[$NumberIndex]-1); } if (defined ($TempArray[$NumberIndex])) { ?print "$NumberIndex n"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |