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

            隨感而發

            雜七雜八

            統計

            留言簿(13)

            閱讀排行榜

            評論排行榜

            求最大最小值

            今天學習了求最大最小數,這是一個很簡單的算法,就是遍歷一次,然后依次跟當前最大或最小的比較一下,遍歷結束,則選擇結束。
            不過同時求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2*n到3*n / 2。但是我覺得在代碼的可讀性上沒有直接兩次比較來的好。
            雖然很簡單,還是奉上源代碼:
            #include <stdio.h>
            #include 
            <stdlib.h>

            //得到最大最小值
            int GetMaxMin(int nData[], int nLen, int* pnMax, int* pnMin)
            {
                
            int nMax = nData[0];            //初始化最大值為第一個元素
                int nMin = nData[0];            //初始化最小值為第一個元素
                int i;                            //下標控制i

                
            //遍歷元素,兩兩比較
                for (i = 1; i + 1 < nLen; i += 2)
                {
                    
                    
            if (nData[i] > nData[i + 1])    //如果第一個數比第二個數大
                    {
                        
            if (nMax < nData[i])        //用第一個數與nMax比較
                        {
                            nMax 
            = nData[i];
                        }
                        
            if (nMin > nData[i + 1])    //用第二個數與nMin比較。
                        {
                            nMin 
            = nData[i + 1];
                        }
                    }
                    
            else                            //如果第一個數不大于第二個數
                    {
                        
            if (nMax < nData[i + 1])    //用第二個數與nMax比較
                        {
                            nMax 
            = nData[i + 1];
                        }
                        
            if (nMin > nData[i])        //用第一個數與nMin比較
                        {
                            nMin 
            = nData[i];
                        }
                    }
                }

                
            if (i < nLen)                    //確定是否都比較了,如果nLen為偶,可能最后一個數沒有比較
                {
                    
            if (nMax < nData[i])        //比較最后一個數。
                    {
                        nMax 
            = nData[i];
                    }
                    
            else if (nMin > nData[i])
                    {
                        nMin 
            = nData[i];
                    }
                }

                
            *pnMax = nMax;                    //保存結果
                *pnMin = nMin;                    //返回結果。

                
            return 1;
            };

            //得到最小值
            int GetMin(int nData[], int nLen)
            {

                
            int nMin = nData[0];        //初始化nMin為第一個數據
                for (int i = 1; i < nLen; ++i)    //遍歷數據一一同nMin比較
                {
                    
            if (nMin > nData[i])
                    {
                        nMin 
            = nData[i];
                    }
                }
                
            return nMin;                //返回最小值
            }

            //得到最大值
            int GetMax(int nData[], int nLen)
            {
                
            int nMax = nData[0];        //初始化nMax為第二個數據
                for (int i = 1; i < nLen; ++i)    //遍歷數據一一同nMax比較
                {
                    
            if (nMax < nData[i])
                    {
                        nMax 
            = nData[i];
                    }
                }
                
            return nMax;                //返回nMax
            }
            int main()
            {
                
            int nData[10= {8,2,5,9,3,6,4,7,1,6};    //測試
                int nMax = GetMax(nData, 10);
                
            int nMin = GetMin(nData, 10);
                printf(
            "%d %d\n", nMin, nMax);

                GetMaxMin(nData, 
            10&nMax, &nMin);
                printf(
            "%d %d\n", nMin, nMax);
                system(
            "pause");
                
            return 0;
            }

            posted on 2009-04-27 19:28 shongbee2 閱讀(1257) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構和算法

            亚洲国产另类久久久精品黑人 | 无码乱码观看精品久久| 91精品国产91久久久久久| 国产精品美女久久久网AV| 久久中文字幕无码专区| 亚洲成色WWW久久网站| 91精品国产高清久久久久久91 | 亚洲嫩草影院久久精品| 国产高潮国产高潮久久久91 | 东京热TOKYO综合久久精品| AV无码久久久久不卡蜜桃| 亚洲午夜精品久久久久久人妖| 99久久精品免费国产大片| 午夜精品久久久久久| 久久精品无码午夜福利理论片| 青青青青久久精品国产| 一本色道久久88综合日韩精品| 亚洲色欲久久久综合网| 99久久综合狠狠综合久久| 亚洲?V乱码久久精品蜜桃| 2022年国产精品久久久久| 怡红院日本一道日本久久| 午夜精品久久久久成人| 国产成人久久精品区一区二区| 亚洲中文字幕伊人久久无码| 精品无码久久久久国产| 久久久网中文字幕| 国产V亚洲V天堂无码久久久| 久久精品国产免费观看三人同眠| 精品久久久久久久久久中文字幕| 久久婷婷五月综合97色一本一本 | 久久笫一福利免费导航 | 久久久久亚洲精品中文字幕| 亚洲狠狠婷婷综合久久蜜芽| 久久国产香蕉一区精品| 色综合久久久久| 欧美激情精品久久久久| 亚洲国产成人久久综合碰碰动漫3d| 91精品国产高清久久久久久io| 色婷婷综合久久久中文字幕| 久久人人爽人人精品视频|