クイックソートに少し問題があります。私はそれを&に渡そうとしていますが、間違ったことを続けています。どんな洞察力も大変高く評価されます。クイックソートをCソート構造体で実装しようとしています
コードは、私がオンラインで見つけた汎用クイックソートを実装しています。本質的には、私はそれをコピーしようとしていますが、構造体の距離で並べ替えます。したがって、距離が小さい場合 - 私は2つのファイルを移動し、適切に並べ替えたいです。
ありがとうございます!これに
void swap(PointClassify &i, PointClassify &j)
:この
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
将来、問題があると言っているのではなく、あなたのコードでどのような問題が起きているのかを説明すると役に立ちます。 – Bashwork
スワップを渡そうとしていますが、動作しません。それをもっとわかりやすくしてくれてすみません。 –