Я пытаюсь реализовать алгоритм быстрой сортировки для сортировки массива с плавающей точкой.
Всякий раз, когда я ссылаюсь на индекс в массиве, я получаю эту ошибку:
Невозможно неявно преобразовать тип 'float' в 'int'. Явный
конверсия существует (вам не хватает актеров)?
Вот алгоритм:
class Quicksort
{
public static void Sort(float[] numbers, int left, int right)
{
float i = Convert.ToSingle(left);
float j = Convert.ToSingle(right);
var pivot = numbers[(left + right) / 2];
while (i <= j)
{
while (numbers[i] < pivot) //ERROR HERE
i++;
while (numbers[j] > pivot) //ERROR HERE
j--;
if (i <= j)
{
float tmp = numbers[i]; //ERROR HERE
numbers[i] = numbers[j]; //ERROR HERE
numbers[j] = tmp; //ERROR HERE
i++;
j--;
}
}
if (left < j)
Sort(numbers, left, j);
if (i < right)
Sort(numbers, i, right);
}
}
Ошибка преобразования появляется всякий раз, когда я использую numbers[i]
или numbers[j]
Как бы это исправить?
Спасибо