1
对我的快速排序有点麻烦 - 我试图通过它&但仍然做错了什么。任何有识之士将不胜感激。尝试在c分类结构中实现快速排序
代码实现了我在网上找到的通用快速排序。基本上,我试图复制它,但按结构的距离排序。因此,如果距离较小 - 我想移动这两个文件并进行适当的排序。
谢谢!
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);
}
}
想必你这样做你自己的熏陶,并不会因为你没有注意到标准库`qsort`? – dmckee 2011-12-14 01:47:20
将来可能有助于说明您的代码存在什么问题,而不仅仅是说您遇到问题。 – Bashwork 2011-12-14 01:48:21
我试图通过交换&但它不工作。我很抱歉没有做出更明确的表示。 – 2011-12-14 01:50:32