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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: chenyajun5
打印 上一主題 下一主題

[算法] 請教一個算法問題。 [復(fù)制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2006-06-30 14:36 |只看該作者
ok,非常感謝大家。

論壇徽章:
0
12 [報告]
發(fā)表于 2006-06-30 17:31 |只看該作者
原帖由 libin1983 于 6/30/06 13:27 發(fā)表

好辦法!(當(dāng)內(nèi)存足夠大時 :wink:)


那就稍稍修改一下qsort調(diào)用的partition函數(shù)

當(dāng)partition返回的位數(shù)(該位前面的數(shù)都大于該位上的數(shù),后面的數(shù)都小于該位上的數(shù))大于200時
就減去該位及該位以后所有的數(shù)

論壇徽章:
0
13 [報告]
發(fā)表于 2006-06-30 17:39 |只看該作者
構(gòu)造一個大頂堆然后不斷刪除最頂元素應(yīng)該也很快(似乎比qsort之后取前幾個還要快)

論壇徽章:
0
14 [報告]
發(fā)表于 2006-06-30 18:48 |只看該作者
STL 中partial_sort,nth_element,stable_partition都可實現(xiàn)

nth_element提取元素后不排序
partial_sort提取元素后排序
stable_partition穩(wěn)定排序

都是專家寫的,咱們寫肯定不如他們的好,不如不寫。

論壇徽章:
0
15 [報告]
發(fā)表于 2006-06-30 21:35 |只看該作者
#include <algorithm>
using namespace std;

bool Larger(int iNumber1, int iNumber2)
{
      if (iNumber1 > iNumber2) {
          return true;
      }else {
          return false;
      }
}
vector<int> intVector; // 在這個整數(shù)向量中保存你要處理的整數(shù)

vector<int>::iterator first = intVector.begin();
vector<int>::iterator last = intVector.end();

sort(first, last, Larger);

論壇徽章:
0
16 [報告]
發(fā)表于 2006-07-01 22:12 |只看該作者
原帖由 liubinbj 于 2006-6-30 18:48 發(fā)表
STL 中partial_sort,nth_element,stable_partition都可實現(xiàn)

nth_element提取元素后不排序
partial_sort提取元素后排序
stable_partition穩(wěn)定排序

都是專家寫的,咱們寫肯定不如他們的好,不如不寫。


請問,這3個都是c++中的函數(shù)么?俺沒有用過c++,沒用過這些函數(shù)。。你的意思是參考這些函數(shù)然后進行改寫?

論壇徽章:
0
17 [報告]
發(fā)表于 2006-07-01 22:18 |只看該作者
原帖由 windyheart 于 2006-6-30 21:35 發(fā)表
#include <algorithm>
using namespace std;

bool Larger(int iNumber1, int iNumber2)
{
      if (iNumber1 > iNumber2) {
          return true;
      }else {
          return false;
...


sort是什么排序函數(shù)?快速排序么?俺沒用過c++,麻煩解釋這段代碼含義。。

論壇徽章:
0
18 [報告]
發(fā)表于 2006-07-01 22:32 |只看該作者
原帖由 chenyajun5 于 2006-7-1 22:12 發(fā)表


請問,這3個都是c++中的函數(shù)么?俺沒有用過c++,沒用過這些函數(shù)。。你的意思是參考這些函數(shù)然后進行改寫?


你想改專家寫的?沒必要把,用就是了。

論壇徽章:
0
19 [報告]
發(fā)表于 2006-07-08 13:34 |只看該作者
原帖由 chenyajun5 于 2006-7-1 22:18 發(fā)表


sort是什么排序函數(shù)?快速排序么?俺沒用過c++,麻煩解釋這段代碼含義。。


不好意思!以前給你寫的解答有些問題!在linux下面應(yīng)該是編譯不過去的。ㄖ饕菚r對sort還不太理解) 下面是正確的解答(我這里用了partial_sort,因為你只想從N個整數(shù)中找到M個最大的數(shù))

#include <algorithm>
#include <functional>
using namespace std;


vector<int> intVector;
vector<int>::iterator first;
vector<int>::iterator last;

// 把你要排序的整數(shù)存到上面的整數(shù)向量中去
intVector.push_back(...);
......

// 現(xiàn)在你已近將N個數(shù)都裝到intVector中了, 這樣我們可以對intVector排序
first = intVector.begin();
last = intVector.end();
partial_sort(first, first + M, last, great<int>());

// 現(xiàn)在intVector中的前M個數(shù)已經(jīng)是N個中最大的了

希望以上所說的能對你有些幫助!
        ^_^ (如果你想了解sort的用法,可以到我的博客中看我的一篇文章)

論壇徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大;照
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亞冠之廣州恒大
日期:2015-07-22 17:20:15
20 [報告]
發(fā)表于 2006-07-08 18:22 |只看該作者
我覺得這個問題如果要最快的話 錦標(biāo)賽算法應(yīng)該是最快的
就是建樹比較 然后大的數(shù)能盡一級 最大的數(shù)自然就是root 然后左右子樹 分別就是次大和第三大的數(shù) 以此類推 要錢m的 從root取起 取m個元素 就夠了

錦標(biāo)賽 還是蠻經(jīng)典算法
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP