• <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>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            查找數(shù)組中第二大的數(shù)值

            題目:寫一個(gè)函數(shù)找出一個(gè)整數(shù)數(shù)組中,第二大的數(shù)。【Mirosoft

            解答:
            int FindSecondMaxValue(int src[], int count)
            {
                
            int max = 0;
                
            int secondMax = 0;

                
            if (count==0return secondMax;
                
            if (count==1)
                
            {
                    
            return src[0];
                }

                
            else if (src[0> src[1])
                
            {
                    max 
            = src[0];
                    secondMax 
            = src[1];
                }

                
            else
                
            {
                    max 
            = src[1];
                    secondMax 
            = src[0];
                }


                
            for (int i=2; i<count; ++i)
                
            {
                    
            if (src[i] >= max)
                    
            {
                        secondMax 
            = max;
                        max 
            = src[i];
                    }

                    
            else
                    
            {
                        
            if (src[i]>secondMax)
                        
            {
                            secondMax 
            = src[i];
                        }

                    }

                }

                
            return secondMax;
            }

            算法本身是簡單的,但是一些邊界條件需要注意:
            1.數(shù)組的元素?cái)?shù)量為1,0個(gè);
            2.數(shù)組所有元素的數(shù)值相等;
            3.數(shù)組元素只有2個(gè)不同的數(shù)值。

            以上代碼還不是很健壯,不過基本邏輯應(yīng)該是OK的,以下是測(cè)試代碼,測(cè)試了相關(guān)的邊界條件。
            void testFindSecondMaxValue()
            {
                
            const int array_size = 10;

                
            // 一般情況
                int arr1[array_size]={0-1187335424-56355687-100};
                std::cout 
            << "數(shù)組中第二大數(shù)為:" << FindSecondMaxValue(arr1, array_size ) << std::endl;

                
            // 數(shù)組元素只有2個(gè)不同的數(shù)值
                int arr2[array_size]={0100000000};
                std::cout 
            << "數(shù)組中第二大數(shù)為:" << FindSecondMaxValue(arr2, array_size ) << std::endl;

                
            // 數(shù)組所有元素的數(shù)值相等
                int arr3[array_size]={1111111111};
                std::cout 
            << "數(shù)組中第二大數(shù)為:" << FindSecondMaxValue(arr3, array_size ) << std::endl;

                
            // 只有0個(gè)元素的數(shù)組
                
            //int arr4[0];
                
            //std::cout << "數(shù)組中第二大數(shù)為:" << FindSecondMaxValue(arr4, 0 ) << std::endl;

                
            // 只有1個(gè)元素的數(shù)組
                int arr5[1]={1};
                std::cout 
            << "數(shù)組中第二大數(shù)為:" << FindSecondMaxValue(arr5, 1 ) << std::endl;

            }
            不過0數(shù)組在VS2005里面已經(jīng)被禁止掉了,所以arr4編譯是會(huì)要報(bào)錯(cuò)的。


            附送一個(gè)求數(shù)組第二小的元素的查找算法:
            int FindSecondMinValue(int src[], int count)
            {
                
            int min = 0;
                
            int secondMin = 0;

                
            if (count==0return secondMin;
                
            if (count==1)
                
            {
                    
            return src[0];
                }

                
            else if (src[0< src[1])
                
            {
                    min 
            = src[0];
                    secondMin 
            = src[1];
                }

                
            else
                
            {
                    min 
            = src[1];
                    secondMin 
            = src[0];
                }


                
            for (int i=2; i<count; ++i)
                
            {
                    
            if ( src[i]<=min )
                    
            {
                        secondMin 
            = min;
                        min 
            = src[i];
                    }

                    
            else
                    
            {
                        
            if ( src[i] < secondMin)
                            secondMin 
            = src[i];
                    }

                }

                
            return secondMin;
            }
            其實(shí)就是反了一下,也沒啥特別的。。。。
            =。=

            posted on 2009-01-06 05:32 楊粼波 閱讀(1343) 評(píng)論(0)  編輯 收藏 引用


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


            中文字幕久久精品无码| 新狼窝色AV性久久久久久| 91精品国产高清久久久久久91 | 午夜精品久久久久久影视777| 国产香蕉97碰碰久久人人| 亚洲婷婷国产精品电影人久久| 久久精品国产AV一区二区三区| 久久夜色精品国产亚洲| 久久久亚洲欧洲日产国码是AV | 岛国搬运www久久| 国产69精品久久久久久人妻精品| 77777亚洲午夜久久多喷| 中文字幕无码久久人妻| 精品一区二区久久久久久久网站| 亚洲?V乱码久久精品蜜桃| 丁香五月网久久综合| 久久精品国产久精国产果冻传媒| 久久99精品九九九久久婷婷| 欧美牲交A欧牲交aⅴ久久| 尹人香蕉久久99天天拍| 精品免费久久久久国产一区| 国内精品伊人久久久久av一坑| 天天综合久久一二三区| 久久青青草原国产精品免费| 日产精品久久久久久久性色| 人人狠狠综合久久亚洲| 国产精品无码久久久久| 国产69精品久久久久99| 久久精品国产91久久麻豆自制| 亚洲国产精品无码久久SM| 亚洲人成无码www久久久| 久久996热精品xxxx| 伊人丁香狠狠色综合久久| 国内精品久久久久久野外| …久久精品99久久香蕉国产| 人妻少妇久久中文字幕| 色偷偷久久一区二区三区| 久久综合噜噜激激的五月天| 日韩人妻无码一区二区三区久久 | 欧美性猛交xxxx免费看久久久| 久久AAAA片一区二区|