2016-04-07 6 views
0

私はダブルに変換する文字列配列を持っています。次のクイックソートアルゴリズムに渡し、ダブル配列を持つにもかかわらずdoubleをintに変換できません。左と右はそれぞれ0とarr.Length - 1です。クイックソートを使用してダブルをソートするときのエラー

public static double[] quick_Sort(double[] arr, double left, double right) 
    { 

      double i, j; 
      double pivot, temp; 
      i = left; 
      j = right; 
      pivot = arr[(left + right)/2]; 
      do 
      { 
       while ((arr[i] < pivot) && (i < right)) i++; 
       while ((pivot < arr[j]) && (j > left)) j--; 
       if (i <= j) 
       { 
        temp = arr[i]; 
        arr[i] = arr[j]; 
        arr[j] = temp; 
        i++; 
        j--; 
       } 
      } while (i <= j); 
      if (left < j) quick_Sort(arr, left, j); 
      if (i < right) quick_Sort(arr, i, right); 

     return arr; 

    } 
+0

私が投稿したセグメントのうち。 8、11、12 15、16、16、17 – KevinSpacey

+0

このコードはコンパイルされません。 – usr

+0

これははるかに大きなプログラムのセグメントです。 – KevinSpacey

答えて

1

問題は、あなたの配列インデックスのためのdoubleの使用していることである - 例えば、intのことになっています

arr[i] 

あなたのインデックスのint値、例えば:

int i; 
i = Convert.ToInt32(left); 

それとも、あなたのすべての変数(あなたのプログラムがどのように動作するかに依存する)のためにintの代わりdoubleを使用を使用する必要があります。私は何が最善であるか分かりません。

関連する問題