看见一道排序题,练练手。

看见一道排序题,练练手。,第1张

概述(编程题)100万个数据,数据值在0~65535之间,请用尽可能少的内存和最快的速度从小到大排序(10分)   #!perl -w use strict; my @ArrayData = (1,2,2,5,6,3,55,555,33,22,33,78,545,23,2,2,234,234,234,7,90,23,234,34,2,775,65); &Sort(@ArrayData); my @Te

(编程题)100万个数据,数据值在0~65535之间,请用尽可能少的内存和最快的速度从小到大排序(10分)

 

#!perl -w
use strict;
my @ArrayData = (1,2,5,6,3,55,555,33,22,78,545,23,234,7,90,34,775,65);
&Sort(@ArrayData);

my @TempArray; sub Sort() {  my (@Array) = @_;  foreach my $no  (@Array)  {   print "$no\n";   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"; }

总结

以上是内存溢出为你收集整理的看见一道排序题,练练手。全部内容,希望文章能够帮你解决看见一道排序题,练练手。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存