- 论坛徽章:
- 145
|
本帖最后由 jason680 于 2011-04-28 09:57 编辑
用Perl写了一个 计数排序,不知道这样写有没有不对的地方?
另外,Perl子程序每次调用的时候都会创建一个数 ...
qq64878641 发表于 2011-04-27 09:16 ![]()
改一下...- #!/usr/bin/perl
- use strict;
- use warnings;
- use 5.010;
- sub counting_sort{
- my @arr = @_;
- my @count;
- my @result;
- my $sCnt;
-
- for(@arr){
- $count[$_]++; #count[i] 等于i的元素
- }
- # @count = (2,'', 2, 3,'', 1)
- # 下标 0 1 2 3 4 5
- $sCnt = 0; # 下标
- for(@count){
- $_ ||= 0;
- push @result,($sCnt) x $_;
- $sCnt++
- }
- return @result;
- }
- my @array = qw/2 5 3 0 2 3 0 3/;
- my @temp = counting_sort(@array);
- say "@temp";# print 0 0 2 2 3 3 3 5
复制代码 |
|