/**
* 無序陣列排序後的最大相鄰差
*/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 優化版,使用桶排序統計最大...