作者eggegg1230 (蛋蛋~)
看板C_and_CPP
標題[問題] 如何在使用 qsort 之後 還能知道本來的位置?
時間Wed Apr 22 14:59:30 2009
剛剛查到了可以直接用 Qsort 的方法
int values[] = { 40, 10, 100, 90, 20, 25 };
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main ()
{
int n;
qsort (values, 6, sizeof(int), compare);
for (n=0; n<6; n++)
printf ("%d ",values[n]);
return 0;
}
現在情形是 有一個大小為images張數的 array
從頭到尾分別是query image 與 Database images 之間的距離
要是我直接像上面範例 將array 丟進去的話
排序之後我就不知道原本這個距離是在哪個位置
也就是不行用array位置來找出他是哪一張圖 (
要顯示排序之後的result)
後來有想到方法是用 structure
struct distance_list
{
float distance;
int img_number;
};
可是這樣就不能丟進 qsrot排序 ....
麻煩大家幫我想想方法可以排序 也可以記住每個distance原來在array中的位置
感激不盡 ^^"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.51.123
1F:推 Ebergies:為什麼這樣就不能丟進 qsort 排... = =a 04/22 15:01
2F:→ vocaloid:你想一下為什麼要給他元素大小,要給他函式指標 04/22 15:07
3F:→ eggegg1230:可以了 ... 把大小設成 struct 大小就好了 XD 04/22 15:09
4F:→ eggegg1230:乾蝦樓上兩位 ~"~ 04/22 15:10