2017-08-24 13 views
2

Dart標準ライブラリにリストがソートされているかどうかをチェックする関数がありますか?リストがソートされているかどうかをチェックする通常の方法は何ですか?

もちろん、私は(異なる方法で)私の実装を簡単に行うことができますが、これは再帰的に必要な操作なので、List APIの一部として、またはトップレベル関数またはアルゴリズムを他のライブラリで使用することができます。

+2

私は標準ライブラリでは何もないかなり確信しています。 –

答えて

1

ソートされているかどうかを直接確認する方法はありません。Iterable.foldまたはIterable.reduceなどから簡単に作成する方法はありません。 これは以前に要求された機能ではないため、プラットフォームライブラリに格納されているものである可能性は低いです。 package:collectionまたはpackage:quiverのようなパッケージに入れておく価値があります。ここで

は、使用できる機能です。

bool isSorted<T>(List<T> list, [int Function(T, T) compare]) { 
    if (list.length < 2) return true; 
    compare ??= (T a, T b) => (a as Comparable<T>).compareTo(b); 
    int prev = list.first; 
    for (var i = 1; i < list.length; i++) { 
    int next = list[i]; 
    if (compare(prev, next) > 0) return false; 
    prev = next; 
    } 
    return true; 
} 
関連する問題