開発環境
- OS X Lion - Apple(OS)
- Dart SDK (開発環境)
- Dart (プログラミング言語)
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の10章(章全部で復習), 10.3(練習問題)、シャッフル(再帰、ラッパーメソッド無し)をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
シャッフル(再帰、ラッパーメソッド無し)
コード
sample.dart
import 'dart:math' as math;
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;
}
List shuffle(List some_list){
var shuffled_list = [];
var unshuffled_list = some_list.toList();
var random = new math.Random();
while(unshuffled_list.length != 0){
var l = unshuffled_list.length;
var r = random.nextInt(l);
shuffled_list.add(unshuffled_list[r]);
unshuffled_list.removeAt(r);
}
return shuffled_list;
}
void main(){
var langs = ["ruby", "python", "dart", "haskell", "c",
"scheme", "lisp", "csharp", "cpp", "perl"];
var sorted_langs = sort(langs);
var shuffled_langs = shuffle(sorted_langs);
print('ソート前: ${langs}');
print('ソート後: ${sorted_langs}');
print('シャッフル後: ${shuffled_langs}');
}
入出力結果
ソート前: [ruby, python, dart, haskell, c, scheme, lisp, csharp, cpp, perl] ソート後: [c, cpp, csharp, dart, haskell, lisp, perl, python, ruby, scheme] シャッフル後: [haskell, c, perl, ruby, csharp, dart, cpp, python, lisp, scheme]
0 コメント:
コメントを投稿