• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Welcome to Leon's Blog  
            日歷
            <2008年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567
            統(tǒng)計
            • 隨筆 - 30
            • 文章 - 0
            • 評論 - 51
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            ACM

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             

               在上周開始做北大acm1002題,經(jīng)過幾天的分析和參考別人的代碼,最后終于提交成功了。在這里把代碼貼出來,和大家分享,也懇請大家指出寫不好的地方。在網(wǎng)上搜到了另外一個人對這道題的解法,他是解法,推薦大家看看。

             1#include <stdlib.h>
             2#include <stdio.h>
             3typedef int TelNumber;
             4int toNumber[26= {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,-1,7,7,8,8,8,9,9,9,-1};
             5
             6void SortNumber(TelNumber *tel, int left, int right)
             7{
             8    int j,i;
             9    TelNumber temp;
            10    do
            11    {
            12        i = left;
            13        j = right;
            14        temp = tel[(i+j)/2];
            15        do
            16        {
            17            while(tel[i] < temp) i++;
            18            while(tel[j] > temp) j--;
            19            if(i > j)
            20                break;
            21            if(i < j)
            22            {
            23                TelNumber t = tel[i];
            24                tel[i] = tel[j];
            25                tel[j] = t;
            26            }

            27            i++;j--;
            28        }
            while(i <= j);
            29        
            30        if(j-left <= right -i)
            31        {
            32            if(left < j)
            33                SortNumber(tel,left, j);
            34            left = i;
            35        }

            36        else
            37        {
            38            if(i < right)
            39                SortNumber(tel, i, right);
            40            right = j;
            41        }

            42    }
            while(left < right);
            43}

            44
            45int main(int argc, char* argv[])
            46{
            47    int count;
            48    int i;
            49    int t = 1;
            50    int bSame = 0;
            51    TelNumber tel[100000];
            52    scanf("%d\n"&count);
            53    for( i = 0; i < count;i++)
            54    {
            55        char ch;
            56        tel[i] = 0;
            57        while( ch = getchar(), ch != '\n')
            58        {
            59            if(ch == '-')
            60                continue;
            61            else if (ch >= '0' && ch <= '9')
            62                tel[i] = tel[i]*10 + (ch-'0');
            63            else if((ch >= 'A' && ch <= 'P'|| (ch >= 'R' && ch <= 'Y'))
            64                tel[i] = tel[i]*10 + toNumber[ch-'A'];
            65        }

            66    }

            67
            68    SortNumber(tel, 0, count-1);
            69    for(i = 0; i < count;)
            70    {
            71        for(t = i+1; (t < count) && (tel[i] == tel[t]); t++)
            72            ;
            73        if(t-> 1)
            74        {
            75            bSame = 1;
            76            printf("%03d-%04d %d\n", tel[i]/10000, tel[i]%10000, t-i);
            77        }

            78        i=t;
            79    }

            80    if(bSame==0)
            81         printf("No duplicates.\n");
            82    return 1;
            83}
            posted on 2008-05-19 10:44 Leon916 閱讀(1505) 評論(4)  編輯 收藏 引用
            評論:
            • # re: acm1002探討  劉峰 Posted @ 2008-05-19 16:39
              最好把題也一起貼出來,只是給個鏈接,省得再去找了。  回復(fù)  更多評論   

            • # re: acm1002探討  winsty Posted @ 2008-05-19 17:36
              為什么不用qsort或者STL的sort...  回復(fù)  更多評論   

            • # re: acm1002探討  Leon916 Posted @ 2008-05-20 08:08
              謝謝劉峰的提醒。
                回復(fù)  更多評論   

            • # re: acm1002探討  Leon916 Posted @ 2008-05-20 08:10
              我是想自己寫一個快速排序,但是自己寫的老是超時,所以參考了.Net 中關(guān)于快速排序的算法,按照它上面寫出來的。  回復(fù)  更多評論   


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


             
            Copyright © Leon916 Powered by: 博客園 模板提供:滬江博客
            中文字幕无码av激情不卡久久| 蜜桃麻豆www久久| 久久伊人影视| 性做久久久久久免费观看| 久久久久亚洲AV无码专区首JN| 久久综合亚洲色HEZYO社区 | 久久99久久99精品免视看动漫| 久久99国产精一区二区三区| 精品久久久久久无码中文野结衣| 青青热久久国产久精品| 久久久久久久久久久精品尤物| 国产一级持黄大片99久久| 久久激情亚洲精品无码?V| 久久综合噜噜激激的五月天| 久久国产视频99电影| 亚洲精品乱码久久久久久自慰| 精品久久国产一区二区三区香蕉 | 色综合久久精品中文字幕首页| 久久影院午夜理论片无码| 狠狠色丁香久久综合婷婷| 久久精品国产亚洲AV久| 精品国产青草久久久久福利| 国产成人久久激情91| 国产精品一区二区久久精品涩爱| 2021久久精品国产99国产精品| 国产一区二区久久久| 免费一级做a爰片久久毛片潮| 青青草原综合久久大伊人精品| 久久久精品2019免费观看| 欧美精品国产综合久久| 欧美国产成人久久精品| 国产精自产拍久久久久久蜜| 精品久久久久久成人AV| 久久久久99精品成人片欧美| 狠狠精品久久久无码中文字幕| 亚洲精品无码久久久久AV麻豆| 成人国内精品久久久久影院VR| 国产亚洲精品美女久久久| 亚洲国产一成人久久精品| 亚洲精品无码久久久久去q | 四虎国产精品成人免费久久|