2013年10月13日日曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の10章(章全部で復習), 10.2(通過儀礼としてのソート)、再帰を使わない版をDartで解いてみる。

その他参考書籍

通過儀礼としてのソート(再帰を使わない版)

コード

sample.dart

List sort(List some_list){
  var unsorted_list = some_list.toList();
  var sorted_list = [];
  while(unsorted_list.length != 0){
    var min = unsorted_list.removeAt(0);
    var tmp = [];
    for(var x in unsorted_list){
      if(x.compareTo(min) < 0){
        tmp.add(min);
        min = x;
      } else {
        tmp.add(x);
      }
    }
    sorted_list.add(min);
    unsorted_list = tmp;
  }
  return sorted_list;
}

void main(){
  var langs = ["ruby", "python", "dart", "haskell", "c", 
               "scheme", "lisp", "csharp", "cpp", "perl"];
  var sorted_langs = sort(langs);
  print('ソート前: ${langs}');
  print('ソート後: ${sorted_langs}');
}

入出力結果

ソート前: [ruby, python, dart, haskell, c, scheme, lisp, csharp, cpp, perl]
ソート後: [c, cpp, csharp, dart, haskell, lisp, perl, python, ruby, scheme]

0 コメント:

コメントを投稿