最大間隙問題

2021-08-07 19:10:52 字數 647 閱讀 7577

問題提出

給定 n 個實數,求這n個實數在數軸上相鄰2個數之間的最大差值,設計解最大間隙問題的線性時間演算法。

問題分析

最簡單的方法便是先將實數進行排序,然後計算間隙,並求出最大間隙。但是這不滿足線性時間演算法要求。而鴿籠原理,可以解決此類問題。首先,要找出最大值和最小值,並均勻分成n-1個區間,計算實數分布到了哪個區間中,用區間的最小值減去前乙個區間的最大值,這便是所求間隙,經過比較,即可求的最大間隙。

#include#include#define n 5

int main();

int count[n];

int index;

float left,gap,len,maxgap=0.0;

maxvalue=0;

minvalue=9999.;

for(int j=0;ja[j])

minvalue=a[j];

}

for(int i=0;ia[i])

} left=intmax[0];

for(int i=0;imaxgap)

left=intmax[i+1];

} } printf("%3.2f\n",maxgap);

}

最大間隙問題

最大間隙問題 問題描述 最大間隙問題,給定n 11,x2,xn,求這n個數在實軸上相鄰2個數之間的最大差值。假設對任何實數的下取整函式耗時o 1 設計乙個計算複雜性最低的演算法解決最大間隙問題。演算法設計 對給定的n個實數x1,x2,xn,計算它們的最大間隙。資料輸入 輸入資料由檔名為 zdjian...

最大間隙問題

問題描述 最大間隙問題 給定n 個實數x1,x2 xn,求這n 個數在實軸上相鄰2 個數之間的最大差值。假設對任何實數的下取整函式耗o 1 設計解最大間隙問題的線性時間演算法。程式設計任務 對於給定的n 個實數x1,x2,xn,程式設計計算它們的最大間隙。資料輸入 輸入資料由檔名為input.txt...

最大間隙問題

給定n個實數,求出相鄰的兩個數,這兩個數的差值是所有相鄰數的最大 例如 1 3 7,8,則答案是3,7 思想如下 找出最大值和最小值,則所有的兩個數 m n max min n 1 因此,設定n 1 個區間,區間長度為 max min n 1,將所有數按照與min的差值對映到這些區間裡 則所有的兩個...