import java.math.* ;
import java.util.* ;
/**
*
*/
public class Test extends Base{
public static void main(String[] args) throws Exception{
int[] arr = getRandomArr() ;
println(arr);
batcherSort(arr , arr.length );
println(arr);
println();
}
public static void batcherSort(int[] arr, int n ){
double shrink = 0.801711847137793d; //0.801711847137793 = 1 / 1.247330950103979
int gap = (int) (shrink * n) ;
int temp ;
boolean sorted = false ;
while (gap > 1 || !sorted){
if (gap > 1){
gap = (int)(shrink * gap) ;
}
sorted = true ;
for (int i =0 ; i + gap < n ; i += gap){
if(arr[i] > arr[i+gap]){
temp = arr[i] ;
arr[i] = arr[i + gap] ;
arr[i + gap] = temp ;
sorted = false ;
}
}
}
}
}
梳排序
最新推荐文章于 2021-02-08 23:03:53 发布