無序陣列排序後的最大相鄰差

2021-10-01 22:35:01 字數 930 閱讀 8796

/**

* 無序陣列排序後的最大相鄰差

*/public

class

maxdis

int d=max-min;

//1.如果 max和min相等則說明陣列中所有元素都相等則,返回0

if(d==0)

//2.初始化桶

int bucketnum=array.length;

bucket[

] buckets=

newbucket

[bucketnum]

;for

(int i=

0;i)//3遍歷原陣列,確定每個桶中的最大值和最小值

for(

int i=

0;i(buckets[index]

.max==null||buckets[index]

.max//4.遍歷桶,找到最大差值

int leftmax=buckets[0]

.max;

int maxdistance=0;

for(

int i=

1;i(buckets[i]

.min-leftmax>maxdistance)

leftmax=buckets[i]

.max;

}return maxdistance;

}private

static

class

bucket

public

static

void

main

(string[

] args)

; system.out.

println

(getmaxsorteddistance

(array));

}}

桶 求無序陣列排序後,最大的相鄰差值

引言 無限長的無序陣列 正負零都有可能。求出排序後最大的相鄰的差值 時間複雜度o n 且要求不能用非基於比較的排序 思路1.找出陣列中的最大元素,分配最大元素 1個桶,對桶等分如一號桶 0 9 二號桶 10 19 2.因為元素最大是n,所以準備了n 1個桶,所以肯定最小桶和最大桶肯定有數,中間有空桶...

求無序陣列排序後相鄰兩個數的最大差值

缺點 當陣列中元素懸殊很大時,如1 2 100000000,則需要構造乙個長度是100000000的新陣列array,則該方法不可取。假設原陣列長度為n 最大差值肯定出現在空桶附近。非空桶內部最大差值d 空間複雜度 o n 時間複雜度 o n 總共掃瞄3次 int maxgap std vector...

陣列 最大差值 面試題 無序陣列排序後的最大相鄰差

排序,然後計算最大差值 function maxsortednear arr return max let a 12,3,34,23,12,2,123 console.log a.join console.log maxsortednear maxsortednear a 優化版,使用桶排序統計最大...