#!/usr/bin/perl -w # 把鍵盤輸入的內容以列為單位做排序. 用選擇排序法 (selection sort). # http://www.cyut.edu.tw/~ckhung/b/pl/ use strict; my (@data, $n, $i, $j, $min, $tmp, $item); $n = 0; while () { $data[$n] = $_; ++$n; } for ($i = 0; $i < $n; ++$i) { # 迴圈每做一次, 就把第 $i 小的元素選出來 $min = $i; # 先前已排好的不算, 目前所知的最小元素是第 $min 個 for ($j = $i + 1; $j < $n; ++$j) { # 後面的元素當中, 那個最小呢? $min = $j if ($data[$j] lt $data[$min]) } if ($min != $i) { # 那麼就要把最小的元素給調過來了 $tmp = $data[$i]; $data[$i] = $data[$min]; $data[$min] = $tmp; } } foreach $item (@data) { print "$item"; } # 以下僅供參考 # 這個程式其實可以寫成一句話: # print sort <>; # 或者乾脆直接在 shell 下用 sort 命令 (遇到空列時效果略有出入)