我有一个字符串数组,我将其转换为double,我将它传递到下面的快速排序算法中,并得到多个错误,表示尽管有double数组,但我无法将double转换为int。Left和right分别为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;
}
问题是您的数组索引使用的是double
s,应该是int
s,例如
arr[i]
您需要为索引使用int
值,例如:
int i;
i = Convert.ToInt32(left);
或者对所有变量使用int
而不是double
(取决于程序的工作方式)。如果没有更多的信息,我不确定什么是最好的。