扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開發(fā)

本站首頁(yè) 軟件開發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 開發(fā)語(yǔ)言 >> 文章正文

非常高效的排序算法,大家看一下

1//位圖排序法,時(shí)空高效的至高境界
 2#include <cstdio>
 3
 4#define BITSPERWORD 32
 5#define SHIFT 5
 6#define MASK 0x1F
 7#define N 10000000
 8int a[1 + N/BITSPERWORD];
 9
10void set(int i){
11    a[i >> SHIFT] |= (1<<(i & MASK));
12}
13
14void clr(int i){
15    a[i >> SHIFT] &= ~(1<<(i & MASK));
16}
17
18int test(int i){
19    return a[i >> SHIFT] & (1<<(i & MASK));
20}
21
22int main(void) {
23    int i;
24    for (i = 0; i < N; i++) {
25        clr(i);
26    }
27    //while (scanf("%d", &i) != EOF) {
28    //    set(i);
29    //}
30    for (int j = 0; j < 3; j++) {    //供簡(jiǎn)單的正確性測(cè)試
31        scanf("%d", &i);            //注意,輸入的數(shù)不能重復(fù)
32        set(i);                        //否則當(dāng)只輸入一次
33    }
34    for (i = 0; i < N; i++) {
35        if (test(i))
36            printf("%d\n", i);
37    }
38    return 0;
39}
為什么說這個(gè)算法時(shí)空效率達(dá)到及致呢?我們對(duì)100萬個(gè)不重復(fù)的正整數(shù)(1000000以內(nèi))的文件進(jìn)行測(cè)試:

 系統(tǒng)排序 C++/STL.set C/qsort C/位圖
總時(shí)間(s) 89 38 12.6 10.7
計(jì)算時(shí)間(s) 79 28 2.4 0.5
內(nèi)存使用(MB) 0.8 70 4 1.25
(本測(cè)試數(shù)據(jù)是在較舊的電腦上測(cè)試的,但還是體現(xiàn)性能的差距)
  第一行是總時(shí)間,第二行的計(jì)算時(shí)間是總時(shí)間減去數(shù)據(jù)讀取耗時(shí)10.2秒。雖然通用C++程序使用內(nèi)存和CPU時(shí)間是專用C程序(C/位圖)的50倍,但是它的使用僅需要一半的代碼,并能很容易擴(kuò)展到其他問題上,這也是專用C程序最大的缺點(diǎn)吧。

作者:未知 | 文章來源:未知 | 更新時(shí)間:2007-12-15 16:35:48

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    重載算法運(yùn)算符
    軟件技術(shù)
    · 開發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開發(fā)
    最新文章  
    ·搜集整理的asp.net的驗(yàn)證方
    ·各種FOR循環(huán)結(jié)構(gòu)的整理
    ·軟件項(xiàng)目開發(fā)中應(yīng)該考慮那
    ·搜集整理的javascript sel
    ·軟件開發(fā)中項(xiàng)目經(jīng)理有那些
    ·學(xué)習(xí)如何在Lambda表達(dá)式進(jìn)
    ·C++基礎(chǔ)知識(shí):結(jié)構(gòu)體數(shù)據(jù)的
    ·C#實(shí)現(xiàn)短信發(fā)送程序的例子
    ·sun最近修補(bǔ)了一部分java的
    ·rss定制的另外一種實(shí)現(xiàn)方式
    ·delphi實(shí)現(xiàn)利用arp欺騙來實(shí)
    ·基礎(chǔ)學(xué)習(xí):基于WF的流程框
    ·網(wǎng)絡(luò)編程中怎樣得知一次數(shù)
    ·如何逆序輸出單鏈表?
    ·軟件開發(fā)過程中的性能設(shè)計(jì)
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    三亚市| 长海县| 深水埗区| 临西县| 武陟县| 仁怀市| 墨竹工卡县| 商都县| 吉安县| 安远县| 福鼎市| 丰台区| 竹溪县| 连江县| 格尔木市| 南部县| 通化市| 宜良县| 万荣县| 铜川市| 乌拉特后旗| 清原| 浠水县| 确山县| 鄂托克前旗| 安溪县| 天津市| 买车| 宿州市| 云梦县| 杭州市| 苍南县| 吉林市| 邵东县| 鹤庆县| 彭州市| 义马市| 开阳县| 景东| 舞钢市| 车致|