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

            国产精品无码久久四虎| 久久精品国产久精国产思思| 国产高潮国产高潮久久久91| 69久久夜色精品国产69| 2020久久精品国产免费| 国产三级精品久久| 中文字幕精品久久| 国产精品美女久久久m| 国产99久久久国产精品~~牛| 国産精品久久久久久久| 狠狠色噜噜色狠狠狠综合久久 | 久久久久国色AV免费看图片| 久久天天婷婷五月俺也去| 久久久久久久波多野结衣高潮 | 国产精品禁18久久久夂久| 日韩久久久久中文字幕人妻| 久久精品人成免费| 久久99热狠狠色精品一区| 性做久久久久久久久久久| 久久亚洲国产成人精品性色| 久久97久久97精品免视看| 国产精品久久久久AV福利动漫| 久久毛片一区二区| 久久精品国产亚洲5555| 国产午夜久久影院| 蜜臀久久99精品久久久久久小说| 久久精品国产一区二区三区日韩| 99久久精品国产一区二区| 久久综合九色综合久99| 国产亚洲综合久久系列| 色播久久人人爽人人爽人人片AV| 久久精品国产色蜜蜜麻豆| 久久99热这里只有精品国产| 丁香久久婷婷国产午夜视频| 国内精品久久久久久久亚洲 | 久久国产免费观看精品| 久久久久久夜精品精品免费啦| 亚洲αv久久久噜噜噜噜噜| 伊人久久无码中文字幕| 2021国产精品久久精品| 一本色道久久88精品综合|