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

            久久午夜夜伦鲁鲁片免费无码影视 | 伊人久久大香线蕉亚洲| 性欧美大战久久久久久久| 一极黄色视频久久网站| 人妻少妇久久中文字幕一区二区| 精品国产91久久久久久久| 精品综合久久久久久88小说| 国内精品伊人久久久久777| 99久久免费国产特黄| 亚洲国产成人乱码精品女人久久久不卡 | 婷婷久久香蕉五月综合加勒比| 韩国无遮挡三级久久| 亚洲国产精品无码久久久久久曰| 久久综合国产乱子伦精品免费| 久久国产亚洲精品麻豆| 久久综合伊人77777| 久久久久高潮毛片免费全部播放 | 伊人色综合久久天天| 精品无码久久久久国产动漫3d| 四虎国产精品免费久久久| 国产一区二区久久久| 久久国产成人| 成人午夜精品久久久久久久小说| 久久只有这精品99| 久久综合综合久久狠狠狠97色88| 伊人久久综合无码成人网| 青青热久久国产久精品| 欧美一区二区精品久久| 国产美女久久精品香蕉69| 婷婷久久香蕉五月综合加勒比| 中文字幕精品久久久久人妻| 国产精品免费久久久久久久久| 久久被窝电影亚洲爽爽爽| 久久青青草原精品国产| 久久丫精品国产亚洲av| 日韩精品久久久肉伦网站| 中文字幕人妻色偷偷久久| 亚洲精品无码专区久久久| 婷婷久久久亚洲欧洲日产国码AV| 国内精品久久久久影院薰衣草 | 91精品国产色综久久 |