2017-10-31 10 views
-2

私はいくつかの記事を見つけようとしたが、私が探しているものに基づいて何かを見つけられなかったと言うことから始める。別の配列に基づいて配列を注文するC

私は2つの配列を持っています:1つは名前を含み、もう1つは各自がラップを終えるまでの時間を含みます。

私は何をする必要があるのですか、より小さなものから始まって、時間に基づいて名前の配列を並べる必要があります。ありがとうございました。

+0

ようこそスタックオーバーフロー!これまでのところあなたの研究/デバッグ作業をうまく示してください。まず[Ask]ページをお読みください。 –

+0

あなたは今のところ気にしていることはありますか?入力*を取る方法? *データ構造*?どちらのソートアルゴリズム*? –

答えて

0

sorting algorithmを実装する必要があります。別々の配列または複合構造体の単一の配列を使用することは、アルゴリズムにとって本当に重要ではありません。

selection sortの実装例です。 namestimesは、等しいサイズの入力配列であり、arr_lengthは、アレイのサイズである:

void sort_arrays(char **names, float *times, unsigned int arr_length) 
{ 
    for (unsigned int i=0; i<arr_length-1; i++) { 
     unsigned int k = i; 

     /* Find element with smallest time */ 
     for (j=i+1; j<arr_length; j++) { 
      if (times[j] < times[k]) { 
       k = j; 
      } 
     } 

     /* Swap k-th and i-th element */ 
     if (k != i) { 
      float time = times[k]; 
      char *name = names[k]; 

      times[k] = times[i]; 
      times[i] = time; 

      names[k] = names[i]; 
      names[i] = name; 
     } 
    } 
} 
+0

そして、1人の人に複数のラップ結果があったらどうなりますか? –

+1

'size_t'は== 'unsigned int'である必要はありません –

+1

これはO(n * \ * 2)です。これを行う正しい方法は、標準quicksortライブラリ関数を呼び出すことです。 –

0

これは、このデータベース・システム用のタスク。あなたがホストされているマシンの場合は、mysqlサーバを実行して、任意のmySQLライブラリを使用してクエリを送信し、回答を受け取ります。

複数の周回がある場合は索引などを作成する必要があります。システムが成長するとデータベースシステムがそれを行い、検索、接続、並べ替えなどを行います

関連する問題