作者HXZ (冲了啊)
看板perl
标题Re: [问题] 请问个排序的问题
时间Sun Jun 11 03:49:01 2006
※ 引述《cutecpu (可爱中央处理器)》之铭言:
: #!/usr/bin/perl
: sub mysort{#这边用bubble sort
: for($i=1;$i<=$#_;$i++){
: for($j=0;$j<=$#_-$i;$j++){
: ($_[$j],$_[$j+1])=($_[$j+1],$_[$j]) if($_[$j]>$_[$j+1]);
: }
: }
: }
: print "请输入你要排序的数字,输入完成请按ctrl+d结束\n";
: chomp (@data = <STDIN>);
: &mysort(@data);
: print "@data\n";
: ※ 引述《liwei0321 (ㄚ笠伯)》之铭言:
: : 就是今天我有个排序的题目 可是我不用 sort ($a <=> $b) 下去做
: : 我要把我给的几个数给排序
: : 想法是(假如有四个) 两两相比 找出第一个最小的 然後删掉
: : 剩下三个在继续比较.....一直到结束
: : 这重复过程就用sub来做
: : ===================================================
: : #!/usr/bin/perl
: : print "请输入你要排序的数字,输入完成请按ctrl+d结束\n";
: : chomp (@data = <STDIN>);
: : open(FILE,">data\n");
: : print FILE "@data";
: : close(FILE);
: : my @input = @data;
: : my @out = sort { $a <=> $b } @input;
: : open(FILE,">output");
: : print FILE "@out\n";
: : close(FILE);
: : 这些是我sort写出来的
: : 希望知道的高手可以教一下 !!!!感谢!
我不会比较有效率的演算法,orz...
@ 提供我自己的笨蛋排序法...大家笑笑XD
(大致是顺着原po的逻辑)
sub stupid_sort{
ゥfif ($_[0] < $_[1]){
$_[0];
}
else{
$_[1];
}
}
chomp (@data = <STDIN>);
foreach (@data){
$hash{$_} = 1;
}
while (%hash){
@tmp = keys %hash;
$a = shift @tmp;
foreach (@tmp){
$a = &stupid_sort($a, $_);
}
push @final, $a;
delete $hash{$a};
}
print "@final\n";
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.171.124
1F:推 liwei0321:感谢!!!! 推! 06/11 16:09