開発環境
- 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 (著) このブログでの感想
辞書順ソート(小文字化(toLowerCase))
コード
sample.dart
List sort(List<String> some_list){ return recursiveSort(some_list, []); } List recursiveSort(List<String> unsorted_list, List<String> sorted_list){ if(unsorted_list.length == 0){ return sorted_list; } var unsorted = unsorted_list.toList(); var min = unsorted.removeAt(0); var temp = []; for(String s in unsorted){ if(s.toLowerCase().compareTo(min.toLowerCase()) < 0){ temp.add(min); min = s; } else { temp.add(s); } } sorted_list.add(min); return recursiveSort(temp, sorted_list); } void main(){ var langs = ['ruby', 'python', 'dart', 'haskell', 'c', 'scheme', 'lisp', 'csharp', 'cpp', 'perl', '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, Ruby, Python, Dart, Haskell, C, Scheme, Lisp, CSharp, CPP, Perl] ソート後: [c, C, cpp, CPP, CSharp, csharp, Dart, dart, Haskell, haskell, lisp, Lisp, perl, Perl, Python, python, ruby, Ruby, scheme, Scheme]
0 コメント:
コメントを投稿