亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
1234下一頁
最近訪問板塊 發(fā)新帖
查看: 5876 | 回復(fù): 34
打印 上一主題 下一主題

[函數(shù)] 請(qǐng)教大家一個(gè)關(guān)于快速排序的問題。 [復(fù)制鏈接]

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-12-10 14:34 |只看該作者 |倒序?yàn)g覽
庫(kù)里面自帶的 qsort為 :

void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

我想問的是,如果對(duì)于內(nèi)建的類型,比如int/char/long/double之類的,能不能不用定義那個(gè)比較函數(shù) ?因?yàn)槟莻(gè)比較函數(shù)調(diào)用的非常頻繁,這樣效率會(huì)低很多的。我自己寫了一個(gè)qsort比庫(kù)里面那個(gè)非常之多,我覺得應(yīng)該是庫(kù)自帶的那個(gè)qsort每次都調(diào)用fcmp這個(gè)函數(shù)進(jìn)行比較帶來的開銷。
謝謝 。

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
2 [報(bào)告]
發(fā)表于 2012-12-10 20:35 |只看該作者
怎么一個(gè)人都沒有的 ??

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國(guó)
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
3 [報(bào)告]
發(fā)表于 2012-12-10 20:49 |只看該作者
這個(gè)不行啊,qsort不知道類型噬。

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
4 [報(bào)告]
發(fā)表于 2012-12-10 21:02 |只看該作者
回復(fù) 3# folklore


    內(nèi)建的那些類型 直接用 > <號(hào)就行了啊。又不是struct這些 。如果每次都要調(diào)用那個(gè)比較函數(shù) 速度非常慢 。

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
5 [報(bào)告]
發(fā)表于 2012-12-10 21:08 |只看該作者
qsort,你自己直接寫個(gè)不就行了

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
6 [報(bào)告]
發(fā)表于 2012-12-10 21:11 |只看該作者
其實(shí)沒慢多少,你就別操心了

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
7 [報(bào)告]
發(fā)表于 2012-12-10 21:29 |只看該作者
回復(fù) 6# crazyhadoop

慢很、 非常多、慢 N倍。。。剛測(cè)試完。100W的數(shù)據(jù),T1是我自己寫的,T2是直接掉系統(tǒng)的。1000W相差更大。我寫那個(gè)都沒經(jīng)過優(yōu)化。因?yàn)閝sort起碼有2個(gè)地方是可以優(yōu)化的。

inpput size:1000003
input times:10
t1 = 0.713seconds
t2 = 2.242seconds

t1 = 0.721seconds
t2 = 2.231seconds

t1 = 0.718seconds
t2 = 2.234seconds

t1 = 0.716seconds
t2 = 2.294seconds

t1 = 0.71seconds
t2 = 2.281seconds

請(qǐng)按任意鍵繼續(xù). . .
   

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
8 [報(bào)告]
發(fā)表于 2012-12-10 21:32 |只看該作者
回復(fù) 5# cokeboL


我是自己寫了。因?yàn)槲矣浀肣sort有2個(gè)地方是可以優(yōu)化的,我想看我寫的沒有優(yōu)化過的 跟系統(tǒng)的有優(yōu)化的 性能差多少,沒想到系統(tǒng)的那個(gè)比我寫的還慢很多...估計(jì)是因?yàn)槊看味颊{(diào)用哪個(gè)cmp函數(shù)的開銷。所以想問下,對(duì)于這種內(nèi)建的類型,完全不需要那個(gè)比較函數(shù)啊 ,能不能不定義。(或者說 不使用)

   

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
9 [報(bào)告]
發(fā)表于 2012-12-10 21:32 |只看該作者
回復(fù) 7# sublx


    把你的代碼傳上來看一下撒

論壇徽章:
1
2015年亞洲杯之巴林
日期:2015-02-05 20:34:47
10 [報(bào)告]
發(fā)表于 2012-12-10 21:39 |只看該作者
  1. int partition(int *array, int low, int high)
  2. {
  3.         int prov = array[low];
  4.         while(low < high)
  5.         {
  6.                 while(low < high && array[high] >= prov) high--;
  7.                 array[low] = array[high];
  8.                 while(low < high && array[low] <= prov) low++;
  9.                 array[high] = array[low];
  10.         }
  11.         array[low] = prov;
  12.         return low;
  13. }

  14. void qsort(int *array, int low, int high)
  15. {
  16.         if (low < high)
  17.         {
  18.                 int p = partition(array, low, high);
  19.                 qsort(array, low, p - 1);
  20.                 qsort(array, p + 1, high);
  21.         }
  22. }



  23. int num;
  24.         cout << "inpput size:";
  25.         cin >> num;
  26.         int times = 0;
  27.         cout << "input times:";
  28.         cin>>times;
  29.         int *a = new int[num];
  30.         int *b = new int[num];

  31.         clock_t m_start;
  32.         unsigned long t1, t2;

  33.         srand((unsigned int)time(NULL));
  34.        
  35.         int i = 0;
  36.         while(++i < times)
  37.         {
  38.                 for (int i = 0; i < num; ++i)
  39.                 {
  40.                         int temp = rand()%10000000;
  41.                         b[i] = a[i] = temp;
  42.                 }
  43.                 m_start = clock();
  44.                 //MergeSort(a, num);
  45.                 qsort(a, 0, num - 1);                //
  46.         //        qsort(a, num, sizeof(int), compare);//
  47.                 t1 = clock() - m_start;
  48.                 cout << "t1 = " << (double)(t1)/CLOCKS_PER_SEC << "seconds" <<endl;
  49.                 m_start = clock();
  50.                 //HeapSort(b, num);
  51.                 qsort(b, num, sizeof(int), compare);
  52.                 t2 = clock() - m_start;
  53.                 cout << "t2 = " << (double)(t2)/CLOCKS_PER_SEC << "seconds" <<endl;
  54.                 //show_array(a, num);
  55.                 //show_array(b, num);
  56.                 if (!isthesame(a, b, num)) break;
  57.                 else cout << "two arrays is the same.diff = " << (long)(t2 - t1) << endl;
  58.                 Sleep(300);
  59.         }
  60.         delete [] a;
  61.         delete [] b
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP