数组最大最小值比较次数优化
生活随笔
收集整理的這篇文章主要介紹了
数组最大最小值比较次数优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? 求數組最大值和最小值算法的比較次數O(2n),因為max和min都要數組與里面的每個元素進行比較,下面介紹一下O(1.5n)的方法,先看代碼:
#include <stdio.h>//求數組的最大值和最小值,要求比較次數的數量級是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; }? ? ?比較次數是O(1.5n),因為當比較4,1時,先將4,1進行比較,然后在和max和min進行比較,這樣比較了3次。常見的是max和min都會和4,1進行比較,這樣次數是4次。
? ? ?
總結
以上是生活随笔為你收集整理的数组最大最小值比较次数优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言--sbb指令
- 下一篇: 动态拼接字符串