luaの配列(テーブル)に文字値が存在するかどうかを効率的に判断する

luaの配列(テーブル)に文字値が存在するかどうかを効率的に判断する

公開: 2016 年 6 月 28 日 - 火曜日04007までこのサイトの元の記事を転載する場合は、記事の出典を示してください: www.04007.cn

    in_array; array_search など、PHP で配列を判断するときに非常に便利な関数呼び出しがあります。しかし、LUA では、これらのホイールを自分で構築する必要があります。http://www.jb51.net/article/65457.htm のように、インターネットにはいくつかの常識的な方法があります。 

テーブルをループして、各値が探している値に対応するかどうかを判断します。コードは以下のように表示されます:

luaの配列(テーブル)に文字値が存在するかどうかを効率的に判断する

    ただし、このメソッドは毎回ループする必要があります. その複雑さは O(n) であることがわかっています. クエリする文字列が多数ある場合、その効率の低さがより明白になります. 実際、lua のテーブル構造を使用して、この種のクエリを最適化することができます.lua のテーブルは効率的なテーブル構造です.PHP のハッシュテーブルを理解するのと同じです.O(1) のみなので、このように: 最初に検索対象のテーブルに対してキーと値のスワップ処理を実行します. その後、すべての検索がテーブルへのインデックスになります. インデックス値が nil の場合 (つまり、見つかった場合). コードは次のとおりです :

luaの配列(テーブル)に文字値が存在するかどうかを効率的に判断する

上記のコードの実行時間の統計結果は次のとおりです。複数のテストにより、後者の方法の効率がはるかに高いことが示されています。

---------- Luaの実行 ----------
cost time:0.005
cost time:0

出力完了(所要時間0秒) - 正常終了

おすすめ

転載: blog.csdn.net/qq_15559109/article/details/110939570