編譯器函式庫自帶的快速排序函式。使用qsort()排序並用 bsearch()搜尋是一個比較常用的組合,使用方便快捷。qsort 的函式原型是void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));各引數:
1 待排序陣列首地址
2 陣列中待排序元素數量
3 各元素的佔用空間大小
4 指向函式的指標class quan //x,y兩點間的權{public:int dis;int x;int y;void cal(int c1, int r1, int c2, int r2);};··································vector<quan>w;quan s;for ( i=1;i<n;i++)for ( j=i+1;j<=n;j++){s.x=i;s.y=j;s.cal(p[i].col,p[i].row,p[j].col,p[j].row);w.push_back(s);}m=w.size();qsort(w,m,sizeof(quan),cmp); //對權值大小從小到大排序其中CMP為int cmp(quan x,quan y){return x.dis<y.dis;}
編譯器函式庫自帶的快速排序函式。使用qsort()排序並用 bsearch()搜尋是一個比較常用的組合,使用方便快捷。qsort 的函式原型是void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));各引數:
1 待排序陣列首地址
2 陣列中待排序元素數量
3 各元素的佔用空間大小
4 指向函式的指標class quan //x,y兩點間的權{public:int dis;int x;int y;void cal(int c1, int r1, int c2, int r2);};··································vector<quan>w;quan s;for ( i=1;i<n;i++)for ( j=i+1;j<=n;j++){s.x=i;s.y=j;s.cal(p[i].col,p[i].row,p[j].col,p[j].row);w.push_back(s);}m=w.size();qsort(w,m,sizeof(quan),cmp); //對權值大小從小到大排序其中CMP為int cmp(quan x,quan y){return x.dis<y.dis;}