選択ソートをPerlで作ってみました。
基本情報の学習用としてです。

   @list = qw[80 60 40 70 30 10 50 20];
  
   for($out_idx = (@list -1); $out_idx >= 1; $out_idx--){
  
       $max_idx = $out_idx;
  
       for($in_idx = 0; $in_idx < $out_idx; $in_idx++){
 
           $flg = 0;
   
           if( $list[$in_idx] > $list[$max_idx]){
               $max_idx = $in_idx;
               $flg = 1;
           }	
   
           if($flg == 1){
               print "設定:○, ";
           }else{
               print "設定:×, ";
           }
   
           print "外:".$out_idx;
           print ", 内:".$in_idx.", ";
           print "最大:".$max_idx.", ";
           foreach(@list){
               print $_." ";
           }
           print "\n";
       }
 
       #数値を交換
       ($list[$in_idx], $list[$max_idx]) 
            = ($list[$max_idx], $list[$in_idx]);
       print "最大値設定,";
       foreach(@list){
           print $_." ";
       }
       print "\n";
   }

出力結果は以下の通りです。

元データ:80 60 40 70 30 10 50 20

設定:○, 外:7, 内:0, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:1, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:2, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:3, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:4, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:5, 最大:0, 80 60 40 70 30 10 50 20
設定:×, 外:7, 内:6, 最大:0, 80 60 40 70 30 10 50 20
最大値設定, 20 60 40 70 30 10 50 80
設定:×, 外:6, 内:0, 最大:6, 20 60 40 70 30 10 50 80
設定:○, 外:6, 内:1, 最大:1, 20 60 40 70 30 10 50 80
設定:×, 外:6, 内:2, 最大:1, 20 60 40 70 30 10 50 80
設定:○, 外:6, 内:3, 最大:3, 20 60 40 70 30 10 50 80
設定:×, 外:6, 内:4, 最大:3, 20 60 40 70 30 10 50 80
設定:×, 外:6, 内:5, 最大:3, 20 60 40 70 30 10 50 80
最大値設定, 20 60 40 50 30 10 70 80
設定:○, 外:5, 内:0, 最大:0, 20 60 40 50 30 10 70 80
設定:○, 外:5, 内:1, 最大:1, 20 60 40 50 30 10 70 80
設定:×, 外:5, 内:2, 最大:1, 20 60 40 50 30 10 70 80
設定:×, 外:5, 内:3, 最大:1, 20 60 40 50 30 10 70 80
設定:×, 外:5, 内:4, 最大:1, 20 60 40 50 30 10 70 80
最大値設定, 20 10 40 50 30 60 70 80
設定:×, 外:4, 内:0, 最大:4, 20 10 40 50 30 60 70 80
設定:×, 外:4, 内:1, 最大:4, 20 10 40 50 30 60 70 80
設定:○, 外:4, 内:2, 最大:2, 20 10 40 50 30 60 70 80
設定:○, 外:4, 内:3, 最大:3, 20 10 40 50 30 60 70 80
最大値設定, 20 10 40 30 50 60 70 80
設定:×, 外:3, 内:0, 最大:3, 20 10 40 30 50 60 70 80
設定:×, 外:3, 内:1, 最大:3, 20 10 40 30 50 60 70 80
設定:○, 外:3, 内:2, 最大:2, 20 10 40 30 50 60 70 80
最大値設定, 20 10 30 40 50 60 70 80
設定:×, 外:2, 内:0, 最大:2, 20 10 30 40 50 60 70 80
設定:×, 外:2, 内:1, 最大:2, 20 10 30 40 50 60 70 80
最大値設定, 20 10 30 40 50 60 70 80
設定:○, 外:1, 内:0, 最大:0, 20 10 30 40 50 60 70 80
最大値設定, 10 20 30 40 50 60 70 80





| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー