問題タブ [qsort]
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 - stdlib から qsort の比較関数を作成するには?
私は構造を持っています:
これらの構造の表:
私がやりたいことは、 andでソートtab_pkt
することです:tab_pkt.alfa
tab_pkt.r
porowaj は比較関数ですが、どのように記述すればよいですか? これが私の「スケッチ」です。
c - 標準ライブラリqsortの安定化?
manページには何も書かれていないので、stdlibの古き良きqsort関数は安定していないと思います。これは私が話している機能です:
比較関数を変更して、比較しているアドレスも含めると、安定すると思います。あれは正しいですか?
例えば:
c - qsort でリストをソートしますか?
キーボードまたはファイルを介して単語を入力すると、単語が長さでソートされるプログラムを作成しています。単語の長さと数が固定されていないため、連結リストを使用するように言われました。
リンクされたリストを使用して単語を表す必要がありますか?
そして、どのようにqsortを使用して単語を長さでソートできますか? qsort は配列で動作しませんか?
私はプログラミングにかなり慣れていません。
ありがとうございました。
c - プログラミングパールのqsort関数にエラーがありますか?
それは私だけですか、それともプログラミングパールのこのコードは間違っています(クイックソートは2つのconst voidを望んでいますか?)もしそうなら、私の解決策は正しいですか?謝罪、ただ学んで...
これは解決策ですか?
c++ - c-stringの列に基づいてQsort?
クラス プロジェクトでは、文字列の配列を並べ替えます。各文字列には、次のように同じ数の列が含まれます。
プログラムは、ソートする列のコマンドライン引数を受け入れ、ソートされた文字列を変更せずに出力する必要があります。
strtok を使用して各文字列のコピーを列に分割し、次のように各行の構造体を作成したいと思います。
私の問題は、qsort が引数として受け取る比較関数ポインターにあります。私の理解が正しければ、比較関数は、ソートされる項目への 2 つの const void ポインターを取り、int を返す必要があります。これは、構造体へのポインターを比較関数に渡すことができないことを意味します。これは、qsort がソートするものではないためです。比較関数に並べ替える列番号を渡すことはできません。これは、2 つの引数しか使用できないためです。特定の列に基づいてこれらの文字列をソートするには、どうすればこれを回避できますか?
編集:本当に必要な場合、並べ替えはqsortまたは自分のものに限定されます。選択肢を与えてください、私はqsortを選びます。:)
編集#2:コンセンサスは、列番号にグローバル変数を使用するか、単にqsortを使用して構造体の配列をソートしているようです。構造体を並べ替えて、それらのポインターを使用して元の文字列を出力することは考えていませんでした。それが私がすることだと思います。助けてくれてありがとう!
c - Cでqsortを実装する方法
C で qsort を実装し、逆の辞書順でソートする必要があります。比較関数を作成して呼び出す方法がわかりません。これは私がこれまでに持っているものです..
Eclipse は qsort 行で「'sort' undeclared (first use in this function)」と言っていますが、それが私だけの問題ではないのではないかと心配しています。何かアドバイス?
ありがとう、フリスト
リビジョン...これは私の配列がどのように見えるかです:
c - cのbsearch関数
2 つの関数がある場合:
qsort 関数を使用して並べ替えと比較を行いますが、bsearch を使用してリストのサブセットを見つけるにはどうすればよいでしょうか。たとえば、2 つのリストがあるとします。
- (リスト A) ボブ、ジミー、リー、ジェームズ、アン
- (リスト B) ジェン、ジョン、リー、ジェームズ、ステフ
リスト B を検索して A の要素を見つけるにはどうすればよいですか?
リスト B で検索して、A にない要素を見つけることもできますか?
ありがとう。
c - qsort、bsearch を使用した C のポインターのヘルプ
使用されているポインター/配列表記の一部に問題があります。2 つのリストがあり、それらを並べ替えてから表示しようとしています。以下のコードには、宣言とは何か、またその理由について 3 つのコメントがありました。私のコードは次のようになります:
c - 関数のセグメンテーション違反のヘルプ
私はしばらくの間、この bsearch 宿題の問題を解決しようとしてきました。コードを使用して、最初に次のように 1 つのエントリを検索してみます。
MissedFirstMeeting は単一の値を適切に呼び出して動作しているように見えますが、次のようにループ内で SearchList 関数を繰り返し呼び出そうとすると、次のようになります。
セグメンテーション違反エラーが発生します。私には同じことをしているように見えますが、SearchList() を繰り返し呼び出すだけですが、セグメンテーション違反エラーが発生するため、明らかに何かが間違っています。何か案は?ありがとう。
c++ - バッファーから可変長レコードを読み取る - 奇妙なメモリの問題
非常に大きなデータセットに I/O 集約型のクイックソート (C++ qsort) を実装しようとしています。速度のために、一度にデータのチャンクをバッファーに読み込み、qsort を使用してバッファー内で並べ替えたいと思います。(私は現在テキスト ファイルで作業していますが、すぐにバイナリに移行したいと考えています。)ただし、私のデータは可変長レコードで構成されており、ソートするにはレコードの長さを qsort に伝える必要があります。これを標準化する方法はありますか?私が考えることができた唯一のことはかなり複雑でした: 私のプログラムは現在、改行文字 (ascii の '10') に達するまでバッファーから読み取り、各文字を別の配列に転送します。改行(入力ファイルの区切り文字)を見つけると、そのレコード (レコード サイズが 30 に設定されている) のバッファーに残っているスペースの数を null 文字で埋めます。このようにして、qsort を実行するための固定サイズのレコードでいっぱいのバッファを作成する必要があります。
私のアプローチにはいくつかの問題があることを私は知っています.1つはそれが不器用であること、もう1つはレコードサイズがおそらく30を超える可能性があることですが、一般的にははるかに小さいことです。これを行うより良い方法はありますか?
同様に、私の現在のコードは機能しません。デバッグすると、あるバッファから別のバッファに文字を転送しているように見えますが、バッファを印刷しようとすると、最初のレコードしか含まれていません。
これが私のコードです:
どうもありがとう、bsg