在PERL中删除数组中重复的元素,并按序排列

root@darkstar:/home/tiger506/Program/Perl# cat -n ./p_uniq_num.pl
1  #!/usr/bin/perl
2  use strict;
3  my @num_array=(1,2,5,4,2,3,1,6,5);
4  my $num_count=$#num_array+1;
5  my $tmp=undef;
6
7
8  for(my $i=0;$i<$num_count;$i++){ #将数组按照由大到小的顺序排列
9          for(my $j=$i+1;$j<$num_count;$j++){
10                  if($num_array[$i]<$num_array[$j]){
11                          $tmp=$num_array[$i];
12                          $num_array[$i]=$num_array[$j];
13                          $num_array[$j]=$tmp;
14                  }
15                  if($num_array[$i]==$num_array[$j]){
16                          delete @num_array[$j]; #剔除重复的元素
17                  }
18          }
19
20  }
21
22  print "剔除数组中冗余元素后,将数组由大到小排序: ";
23  my @new_array;
24  foreach my $element(@num_array){ 
25          print $element."_";
26          if($element=~m/\d/){ 
27                  push @new_array,$element;
28          }
29  }
30  print "\n";
31  print"数组长度为".($#new_array+1)."\n";
32

结果:

root@darkstar:/home/tiger506/Program/Perl# ./p_uniq_num.pl
剔除数组中冗余元素后,将数组由大到小排序: 6_5_4_3_2_1_
数组长度为6




本文转自 tiger506 51CTO博客,原文链接:http://blog.51cto.com/tiger506/1342766,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值