※ ChatGPTを利用し、要約された質問です(原文:アルゴリズムのご相談)
アルゴリズムのご相談
このQ&Aのポイント
DHCPのような動作をするアルゴリズムを考えている最中なのですが、配列で作られたテーブルにユーザ名の一覧があり、ユーザ名をキーワードとして配列のインデックスを抽出する方法を探しています。
ユーザ名は何らかのルールに則って作られた文字列ではなく、キーワードを順に比較して探していく方法やソートしなければならない構造は使えません。ユーザの追加・削除がある度にソートし直す必要もありません。
2分探索法などの検索回数を減らす方法はソートされていることが前提条件ですし、ユーザ名から配列のインデックスに使える数値に変換できるような都合のいい関数は存在しないようです。開発言語はCです。
はじめまして
DHCPのような動作をするアルゴリズムを考えている最中なのですが…
その案の中でどうしてもクリア出来ない課題があります。
「配列で作られたテーブルにユーザ名の一覧があり、
そのユーザ名をキーワードとして配列のインデックスを抽出したい」
というもので、これだけなら簡単なのですが、以下3つの条件の提示により、無理ではないかと思えて仕方がないです。
・ユーザ名は何らかのルールに則って作られた文字列ではない。
・キーワードを頭から順に比較して探していく方法を使ってはいけない。
・ユーザの追加・削除がある度にソートし直さなければならないような構造にしてはいけない。
2分探索法などの検索回数を減らす方法はソートされてることが前提条件ですし、
ユーザ名から配列のインデックスに使える数値に変換できるような都合のいい関数なんて存在しないように思えるのですが、いかがでしょう?
ちなみに開発言語はCです。
お礼
ハッシュ表という概念を初めて知りました。 ありがとうございます。