给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度为O(N),且不能用基于比较的排序 package com.dataStructure.sort; /** * 给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度为O(N),且不能用基于比较的排序 */ public class bucketSort { public static int bucketSort(int[] arr) { int length=arr.length;//得到数组的长度 if(arr==null||length<2) return 0; boolean[] isFlag=new boolean[length+1];//用来判断桶中是否有数据 int[] mins=new int[length+1];//用来存放每个桶中的最小值 int[] maxs=new int[length+1];//用来存放每个桶中的最大值 int min=Integer.MAX_VALUE; int max=Integer.MIN_VALUE; for(int i=0;i<length;i++) { min=Math.min(min,arr[i]); max=Math.max(max,arr[i]);//用来得到数组的最小值与最大值,设置桶的边界 } if(min==max)//整个数组的内容均一样 return 0; for(int i=0;i<length;i++){ int bid=bucket(arr[i],l