約 30K の曲名を含むファイルがあります。AJAX での自動テキスト提案には、このリストを使用する必要があります。数字で始まる名前もあります。私の質問は、このリストに対してバイナリ検索を実行できますか? はいの場合、どのように?
質問する
702 次
2 に答える
2
まず、リストを並べ替えます。
ユーザーが入力した最初の文字が「A」であるとします。
高 = 0 および低 = 文字列の数 -1 で開始します。
次に、高インデックスと低インデックスを定義できます。ここで、高は "A" で始まる最後のインデックスであり、低は "A" で始まる文字列を持つ最初のインデックスです。2 つのバイナリ検索を使用すると、これを実現できます。
したがって、次に入力する文字が「B」の場合、上で定義した上限と下限の範囲で別のバイナリ検索を行い、2 つのバイナリ検索で上限と下限を再度調整します。高低の間の文字列の 2 番目の文字を検索して、「B」などと一致するようにしてください :)
注:データベースを使用することをお勧めしますが、バイナリ検索を使用する方法があるかどうかを尋ねたので、このように答えています:)
単純な SQL クエリ: SELECT column_name FROM table_name WHERE column_name LIKE 'prefix%'
「table_name」テーブルの列「column_name」に格納されている「prefix」で始まる文字列を選択するには
于 2013-07-21T19:53:34.940 に答える