-1

sort -n +1 -2 -o /tmp/ord_idシステムを使用して呼び出す C ファイルにコマンドがありますが、これはかなり悪いことです。unix コマンドが実行するのと同じタスクを完了するには、クイックソート機能を作成するにはどうすればよいですか? コマンドの呼び出し方法は次のとおりです。

static const char sortcmd[] = "sort -n +1 -2 -o /tmp/ord_id "; //dec during function
//later in the function
bu_vls_strcpy(&cmd, sortcmd); //ONLY NEED TO FIX THIS COMMAND
bu_vls_strcat(&cmd, argv[1]);
bu_vls_printf(&gedp->ged_result_str, "%V\n", &cmd);
(void)system( bu_vls_addr(&cmd) );

bu_vls 関数はプログラムで事前定義されているため、通常の文字列関数のように考えてください。呼び出しが表示されるコード行にコメントしました。ヒントやコードを歓迎します (これは宿題ではなく、独立したプロジェクトです!)

4

1 に答える 1

2

いくつかの手順があります:

  1. ファイルを読み込む (それが であると仮定argv[1])
  2. (オプション) それを解析して、+1 -2並べ替えと同じ規則を使用して選択されたフィールドを見つけます。
  3. -n( からの) 引数の数値の数値ソートでソートを実装するソート述語を記述します。これは、完全な行 (ステップ 2 をスキップした場合) または解析された行を表すために作成した構造のいずれかで動作します。
  4. 電話qsort
  5. データをソート順に書き出します。
于 2012-11-27T18:56:31.037 に答える