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

qsort的速度?

缺席
黑輪
中階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-09 12:32:24 IP:140.124.xxx.xxx 未訂閱
請問一下,qsort的排序速度跟排序的資料量有關系嗎? 我有160000*4筆的資料,程式跑了之後好像就不動了,是因為資料太多嗎?
 
void qsort(int a[],int b[],int c[],int d[], 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;             temp = c[i];
        c[i] = c[j];
        c[j] = temp;             temp = d[i];
        d[i] = d[j];
        d[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;         temp = c[m];
    c[m] = c[j];
    c[j] = temp;         temp = d[m];
    d[m] = d[j];
    d[j] = temp;        if (m < j - 1)
    {
      qsort(a, b, c, d, m, j - 1);
    }
    if (j   1 < n)
    {
      qsort(a, b, c, d , j   1, n);
    }
  }
}    
上面是我的qsort副程式,就是對a陣列排序,然後b、c、d陣列就跟著相同的順序排。 這樣會使速度變很慢嗎?
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-09 12:58:41 IP:61.220.xxx.xxx 未訂閱
Quicksort的排序速度是nlogn where n=元素數量 下列的程式碼你試試看  
void __fastcall TForm1::QuickSort(int p,int r,int *xBound)
{
        if (p     
        
黑輪
中階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-09 13:41:01 IP:140.124.xxx.xxx 未訂閱
引言: Quicksort的排序速度是nlogn where n=元素數量
不好意思~問一個笨問題!!單位是什麼啊? 如果我是將a[100]陣列排序,但b[100]、c[100]、d[100]只是跟著換順序,哪速度是100*log100個單位時間,還是400*log400個單位時間? 感謝你的幫忙哦~~
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-09 16:23:35 IP:211.22.xxx.xxx 未訂閱
我覺得是400*log400 但是我覺得既然a=b=c=d 那你為何要一起排序 為何不排完序再將a assign給b,c,d maybe我不太懂你要做什麼, 我只是覺得可以最佳化寫法
黑輪
中階會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-25 17:59:23 IP:140.124.xxx.xxx 未訂閱
不好意思~回南部好幾天~都沒上網~這麼久才回 其實我也不太清楚我的做法~~我再想一下`
系統時間:2024-05-18 20:27:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!