線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:640
推到 Plurk!
推到 Facebook!

如何使"B筆資料"的排序與"A筆資料"的排序相同?

尚未結案
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-01 13:36:14 IP:140.124.xxx.xxx 未訂閱
我有一個struct的資料型態 struct { int member;//區域編號 }point[x][y]; 其中x與y為圖面上一個點的座標,然後每一個點都有其區域編號 如point[9][2].member=1、point[8][8].member=2、point[2][5].member=1... 要將其依區域編號來排序(對point[x][y].member做排序),用qsort方法(這個我會了),要如將point[x][y]的排序與point[x][y].member的排序相同呢? ps: 我是要將"點"依其"區域"來排序,就是區域1的都排在一起,區域2的都排在一起... 感謝大家哦
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-09 12:41:34 IP:140.124.xxx.xxx 未訂閱
自已來回一下啦
 
void qsort(int a[],int b[],int m,int n)   
{
  int i,j,k,temp;
  if (m < n)
  {
    i = m; 
    j = n   1; 
    k = a[m]; 
    do
    {
      do 
      {
        i   ;
      }while( (a[i] < k) && (i<=n)); 
      do 
      {
        j--  ;
      }while( (a[j] > k) &&(j>=1));  
      if (i < j)
      {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;             temp = b[i];
        b[i] = b[j];
        b[j] = temp; 
      }        }while(i < j);         
    temp = a[m];
    a[m] = a[j];
    a[j] = temp;  
    temp = b[m];
    b[m] = b[j];
    b[j] = temp;          if (m < j - 1)
    {
      qsort(a, b, m, j - 1);
    }
        if (j   1 < n)
    {
      qsort(a, b, j   1, n);
    }
  }
}        
這樣會使a陣列由大到小排序,b陣列相對應排序
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-03 17:19:59 IP:140.124.xxx.xxx 未訂閱
請問一下 妳這個副程式 我 a[] 想使用 float b[] 還是用 int 要怎麼改?? 謝謝喔~~
系統時間:2024-07-04 1:55:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!