- 论坛徽章:
- 0
|
原帖由 austinlew 于 2005-11-15 20:54 发表
不好意思,刚学习perl不久,很多东西都不清晰,
我的原意是先把未分类列表的第一个值取出来成为已分类的第一个值,
然后对未分类的所有元素开始遍历, 如果小于分类列表第一个值,就用unshift加进去;
小于已分 ...
你的思路没错的,只是code写的很乱,偶给你整理了下:
- #!/usr/bin/perl
- use strict;
- my @unsort= (8,5,9,77,60,3,55);
- my @sort=shift @unsort;
- foreach my $unsort (@unsort)
- {
- if($unsort < $sort[0])
- {
- unshift (@sort, $unsort);
- next;
- }elsif($unsort > $sort[$#sort])
- {
- push (@sort,$unsort);
- next;
- }
- foreach my $n (0 .. $#sort)
- {
- if($unsort < $sort[$n])
- {
- @sort=(@sort[0..$n-1], $unsort, @sort[$n..$#sort]);
- last;
- }
- }
- }
- print "@sort \ n";
复制代码
$ perl test.pl
3 5 8 9 55 60 77
Just Fine!
[ 本帖最后由 兰花仙子 于 2005-11-15 22:26 编辑 ] |
|