• <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 閱讀(1262) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構和算法

            日韩va亚洲va欧美va久久| 久久精品国产亚洲AV麻豆网站| 99国产精品久久久久久久成人热| 99久久精品国产高清一区二区| 青青青青久久精品国产| 久久亚洲精品无码观看不卡| 亚洲日韩中文无码久久| 久久激情五月丁香伊人| 人妻精品久久无码区| 国产精品无码久久综合网| 人妻无码αv中文字幕久久琪琪布| 亚洲国产精品久久| 久久中文骚妇内射| 久久综合色老色| 久久亚洲电影| 精品久久久久久无码国产| 国内精品久久国产大陆| 亚洲AV无码久久精品蜜桃| 久久久久18| 久久99精品国产麻豆婷婷| 久久精品视频免费| 91久久精品91久久性色| 亚洲国产精品无码久久一区二区| 色综合合久久天天给综看| 国产午夜电影久久| 欧美久久综合性欧美| 99热成人精品热久久669| 久久天天躁狠狠躁夜夜avapp| 精产国品久久一二三产区区别| 亚洲国产精品嫩草影院久久 | 国产成人精品免费久久久久| 久久久久久午夜精品| 伊人色综合九久久天天蜜桃 | 久久精品国产男包| 99精品国产免费久久久久久下载| 久久精品免费大片国产大片 | 99久久国产宗和精品1上映| 久久天天躁狠狠躁夜夜不卡| 久久精品极品盛宴观看| 久久久久久久久波多野高潮| 国产亚洲精久久久久久无码77777|