問題タブ [bsearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ポインタの配列をqsortおよびbsearch
strucへのポインタの配列をソートする必要があります。実際、構造体への特定のポインターが配列に存在するかどうかを確認するために、アドレス間を検索する必要があります。残念ながら、これらの構造の中に「匹敵する」ものは何もないので、アドレスだけで並べ替えたいと思います。私のコードはそのようなものです:
intへのポインタをキャストしてその差を返すだけでcompare_functを作成しようとしましたが、機能しないようです。特に、bsearchを実行すると、要素が配列内に含まれていることがわかっていても、戻り値として常にNULLが返されます。
c - bsearchがvoid*を返すのはなぜですか?
を渡すと、結果も返されconst void * base
ませんか?bsearch
const void *
c - bsearchおよびstruct(カスタムタイプ)
私はこのような配列を持っています:
次に、を実行しようとしましたがbsearch
、次のSegmentation fault
メッセージが表示されます。
。
c - 構造体の複数のアイテムを検索する
修理済み。
含む
ご覧のとおり、私はbsearchと呼ぶのが正しいと思うものを入れましたが、それが正しい場合は、ここからどこに行くべきかわかりません。
c - Cの動的配列を使用したbsearch
こんにちは、bsearch()関数に問題があります。「アクセス違反の読み取り場所」例外が発生します。私はそれを次のように使用しています:
'file_array'は、2401個の要素を持つ動的な文字列配列です。各要素は、*。txtドキュメントからインポートされた最大22文字の長さです。
'linecount'は整数2402であり、同じ*.txtドキュメントの行番号を参照します。
「WORDMAX」は20と定義されています
関数が失敗する理由がわかりません。linecountまたはWORDMAXの値に問題があると思います。
c - 降順でソートされた配列の bsearch
重複なしで降順でソートされた配列があります。libc の bsearch 関数を使用してバイナリ検索を実行できますか? これを行うには、渡す比較関数を変更する必要がありますか?
ありがとう
c - 配列 bsearch() で挿入ポイントを見つける方法は?
C (標準ライブラリ) で bsearch() を使用すると、ソートされた配列内のエントリをすばやく見つけることができます。
ただし、(標準ライブラリを使用して) 新しいエントリを挿入する場所を計算するにはどうすればよいですか?
bsearch() は、見つかったアイテムのキーが渡されたキーと等しいかどうかを具体的にチェックし、そうでない場合は NULL を返すため、使用できません。
c++ - GMPバイナリ検索を求めています:memcmpを使用して2つのGMP mpz_tを比較する方法は?
bsearch
動機:(二分探索)を使用して、121ビットの非負の整数のソートされたリストをすばやく検索したいと思います(先行ゼロがある場合もありますが、すべて正確に121ビットです)。これらの整数は大きすぎて個々のsとして格納できないなどの理由で、 (GMPint
を使用して)作成することを計画しています。mpz_t
マニュアルを見ると、GMPにはbsearch
同等のものがありません(ただし、間違っている場合は修正してください)。これにより、次のようになります。
質問:
memcmp
同じ数のビットが格納されている2つの非負の整数を比較するために、またはそれに類似したものを使用できますmpz_t
か?もしそうなら、正しい構文は何ですか?
これが可能であれば、検索は非常に効率的です。
また、(a)C ++での高速検索を可能にするこれらの121ビット整数を格納するためのデータ構造、(b)を使用しない整数を検索するための方法に関する代替案も受け入れていますmemcmp
。
c - セグメンテーション違反を引き起こす C bsearch
struct anangramInfo のポインターを渡す関数呼び出し userInteractive(*anangramInfo) があり、この構造体には実際のアナグラムへのポインター「anagramPointer」が含まれています。だから、私はユーザーから標準入力を取得します。次に、それを bsearch のキーとして使用して、これらのアナグラムが同じ anangram.sorted を持つポインターを見つけます。キーが anagram.sorted と一致しなくなるまでポインターを左に移動し、anagram.sorted が一致しなくなるまで anagram.word を右に戻します。しかし、それは私にセグメンテーションの問題を引き起こします
c - 特定の要素ではなく、要素の範囲内で一致する C の Bsearch
16 進アドレスを含む構造体の配列のバイナリ検索を実行しようとしています。各構造体にはいくつかのアドレスが保持されます。入力アドレスを指定するときは、構造体の開始アドレスと完全に一致するだけでなく、入力アドレスにまたがる範囲を持つ構造体を見つけたいと考えています。
bsearchでこれを行うことはできますか? これに適した比較関数を見つけるのに苦労しています。
ptrSymbolArray には元のデータが含まれています。これを簡単にするために、ptrSymbolArray からのデータで使用する条件を削除したため、この関数は無意味に見えます。ここでは、元のデータのすべてを含めます。
私が実際に行っているデータは、関数の名前、アドレスなどをacファイルに格納したファイルです。どの関数にいるのかを知るためにアドレスを入力したいです。これを行うには、構造体の先頭のアドレスだけでなく、構造体内のアドレスを一致させる必要があります。