#include "stdio.h"
#include "string.h"
#include "iostream"
#include "fstream"
using namespace std;
const int n = 100;
int n; //數的個數
double data[100];
double high[n];
double low[n];
double count[n];
//返回陣列中最大值
templateint maxi(type data)
//返回陣列中最小值
templateint mini(type data)
templatetype maxgap(type data)
//將n個數裝入n-1個桶
int gap = (max - min) / (n - 1); //每個桶的大小
for(i=0; iint bucket = (int)((data[i]-min)/gap) + 1; //被分配到哪個桶中
count[bucket]++;
if(data[i]if(data[i]>high[bucket]) high[bucket] = data[i];
}//除了最大數和最小數外,剩餘n-2個數裝入了n-1個桶中,由鴿舍原理
//必有乙個桶是空的,所以最大間隙必然產生於相鄰的兩個桶之間
type left = high[0];
type max_gap = 0;
for(i=1; i1; i++)
if(count[i])
if(low[i]-left > max_gap)
return max_gap;
}int main()
double max = maxgap(data);
cout << "\n最大間隙為:"
最大間隙問題
最大間隙問題 問題描述 最大間隙問題,給定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的差值對映到這些區間裡 則所有的兩個...