小弟上次Qsort講解的不好 ,(上次的)
因此在這裡補上一彈 ,
首先 ,
先介紹C函式的網站 ,
http://www.cplusplus.com/
在那搜尋地方打上要的函式 ,
將會有文字介紹 ,
不過今天介紹結構排序 ,
相信一用之後大家都懂了 ,
這部分是宣告的部分 ,
struct In { double x , y ; } n[nodeAmount] ;這是將要自己提供的部分 ,
int qsortXY(const void *a, const void *b) { struct In *intOne = (In*)a; struct In *intTwo = (In*)b; if ((intOne->x) < (intTwo->x)) return -1; if ((intOne->x) == (intTwo->x)){ if ((intOne->y) < (intTwo->y)) return -1; if ((intOne->y) == (intTwo->y)) return 0; return 1; } return 1; }在這裡講解一下qsort為何要自己寫一小段 ,
qsort函式需收到一個值來做判別大小 ,
以下是回傳值寫法 (qsort排序將由小至大),
a < b 時 return (負值) ,
a = b 時 return 0 ,
a > b 時 return (正值) ,
若是想要排序由大至小 ,
將上面的回傳值是正與負顛倒就沒問題 ,
讓小弟上面回傳的程式碼是在一個平面上所用的 ,
先排序x軸由小至大 ,
若是x軸相等時 ,
比較y軸 ,
且一樣由小至大 ,
今天提供了C函式查詢網站與qsort回傳值詳細介紹 ,
相信大家對qsort又有更深一步的了解 ^_^