Возникла небольшая проблема с моей быстрой сортировкой - я пытаюсь пройти мимо, но продолжаю делать что-то не так. Любая идея будет принята с благодарностью.
В коде реализована общая быстрая сортировка, которую я нашел в Интернете. По сути, я пытаюсь скопировать его, но сортировать по расстоянию структуры. Поэтому, если расстояние меньше - я хочу переместить два файла и отсортировать их соответствующим образом.
Спасибо!
typedef struct Tag
{
char classify;
float pointX;
float pointY;
float distance;
}PointClassify;
void swap(PointClassify &i, PointClassify &j)
{
PointClassify temp;
temp = i;
i = j;
j = temp;
}
void quickSort(PointClassify item[], int start, int end)
{
float pivot;
int i = start, j = end;
pivot = item[(start+end)/2].distance;
while(i <= j)
{
while(item[i].distance < pivot)
{
i = i+1;
}
while(item[j].distance > pivot)
{
j = j-1;
}
if(i <= j)
{
swap(item[i],item[j]);
i = i+1;
j = j-1;
}
}
fprintf(stderr, "This is the number %d \n", item[i].distance);
if(start < j)
{
quickSort(item, start, j);
}
if(i < end)
{
quickSort(item, i, end);
}
}