最大間隙問題

2021-07-07 03:38:37 字數 1145 閱讀 3703

#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的差值對映到這些區間裡 則所有的兩個...