最快的排序方法,以空间耗费为代价!!

最快的排序方法,以空间耗费为代价!!,第1张

概述用排序数字值作为数组的索引,其值来表示此数排序后的位置,perl代码如下:   #!perl -w use strict; sub ProduceSortNumRecord {    my @SortNumRecord;  my $EachNum;  my $Index;  foreach $EachNum (@_)  {      if (defined($SortNumRecord[$Each

用排序数字值作为数组的索引,其值来表示此数排序后的位置,perl代码如下:

 

#!perl -w
use strict;
sub ProduceSortNumRecord
{
 
 my @SortNumRecord;
 my $EachNum;
 my $Index;
 foreach $EachNum (@_)
 {
  
  if (defined($SortNumRecord[$EachNum]))
  {
   $SortNumRecord[$EachNum]++; 
  }
  else
  {
   $SortNumRecord[$EachNum] = 1;
  }
 }
 foreach $Index (1..$#SortNumRecord)
 {
  $SortNumRecord[$Index] += (defined($SortNumRecord[$Index-1])?$SortNumRecord[$Index-1]:0); 
 }
 return /@SortNumRecord;
}

sub SortAtSpace
{
 my @SortResult;
 my $AsortNum;
 # @_ contain all nums to sort;
 my $RefSortNumRecord = &ProduceSortNumRecord(@_);
 foreach $AsortNum (@_)
 {
   $SortResult[$RefSortNumRecord->[$AsortNum]-1] = $AsortNum;
  $RefSortNumRecord->[$AsortNum]--;
 }
 return @SortResult;
}

sub PrintArray
{
 print "Array Num is ".scalar(@_)."/n";
 print "Array Value is:/n(";
 foreach  (0..$#_-1)
 {
  print $_[$_].",";
 }

 print $_[$#_].")";
}

my @SortNum = (23,45,12,3,6,7,9,10);print "Num to Sort:",@SortNum,"/n";&PrintArray(&SortAtSpace(@SortNum));

总结

以上是内存溢出为你收集整理的最快的排序方法,以空间耗费代价!!全部内容,希望文章能够帮你解决最快的排序方法,以空间耗费为代价!!所遇到的程序开发问题。

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

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

原文地址: https://www.outofmemory.cn/langs/1289220.html

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

发表评论

登录后才能评论

评论列表(0条)

保存