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

            亚洲AV无一区二区三区久久| 久久国产亚洲精品| 久久久精品国产Sm最大网站| 一级做a爰片久久毛片16| 伊人色综合久久| 久久人人爽人人爽AV片| 亚洲另类欧美综合久久图片区| 一本久久a久久精品亚洲| 2022年国产精品久久久久| 久久性精品| 国产精品久久久久久搜索| 久久强奷乱码老熟女网站| 久久午夜无码鲁丝片秋霞| 99久久精品国产一区二区| 国产成人精品综合久久久| 国产午夜电影久久| 婷婷伊人久久大香线蕉AV | 久久夜色精品国产网站| 人人狠狠综合久久亚洲婷婷| 色老头网站久久网| 九九久久精品无码专区| 97精品久久天干天天天按摩| 久久精品极品盛宴观看| 久久精品国产亚洲av瑜伽| 久久天天躁夜夜躁狠狠躁2022| 久久亚洲精品无码AV红樱桃| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 91精品国产综合久久香蕉| 国产成人无码精品久久久免费| 亚洲精品国精品久久99热| 久久精品国产亚洲av麻豆色欲| 久久成人国产精品二三区| 久久露脸国产精品| 久久精品夜色噜噜亚洲A∨| 婷婷久久综合| 久久久久国产亚洲AV麻豆| 精品久久久久中文字幕日本| 99久久无色码中文字幕人妻| 久久久久久国产精品美女| 亚洲精品国产第一综合99久久 | 国产高清国内精品福利99久久|