数组最大最小值比较次数优化
生活随笔
收集整理的這篇文章主要介紹了
数组最大最小值比较次数优化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? 求數(shù)組最大值和最小值算法的比較次數(shù)O(2n),因?yàn)閙ax和min都要數(shù)組與里面的每個(gè)元素進(jìn)行比較,下面介紹一下O(1.5n)的方法,先看代碼:
#include <stdio.h>//求數(shù)組的最大值和最小值,要求比較次數(shù)的數(shù)量級(jí)是O(1.5n) void getMinMax(int a[],int n){int max=0,min=0;for(int i=0;i<n;i++){if(i+1 < n){if(a[i] < a[i+1]){if(min > a[i]){min = a[i];} if(max < a[i+1]){max = a[i+1];}}else{if(min > a[i+1]){min = a[i];}if(max < a[i]){max = a[i+1];}}}else{if(min > a[i]){min = a[i];}if(max < a[i]){max = a[i];}}}printf("%d,%d\n",max,min); }int main(){int a[8] = {3,7,4,1,5,9,6,-2};getMinMax(a,8);return 0; }? ? ?比較次數(shù)是O(1.5n),因?yàn)楫?dāng)比較4,1時(shí),先將4,1進(jìn)行比較,然后在和max和min進(jìn)行比較,這樣比較了3次。常見的是max和min都會(huì)和4,1進(jìn)行比較,這樣次數(shù)是4次。
? ? ?
總結(jié)
以上是生活随笔為你收集整理的数组最大最小值比较次数优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言--sbb指令
- 下一篇: 动态拼接字符串