import java.math.* ;
import java.util.* ;
/**
* 希尔排序
*/
public class Test{
public static void main(String[] args) {
System.out.println("insert sort");
insertSort(getRandomArr());
insertSort2(getRandomArr());
}
public static void insertSort(int[] arr){
println(arr);
int len = arr.length ;
int gap, i, j;
int temp;
for (gap = len >> 1; gap > 0; gap >>= 1){
for (i = gap ; i < len ; i++ ){
temp = arr[i] ;
for (j = i - gap; j >= 0 && arr[j] > temp ; j -= gap)
arr[j+gap] = arr[j] ;
arr[j+gap] = temp ;
}
}
println(arr);
println();
}
public static void insertSort2(int[] arr){
println(arr);
int j , k , gap ;
int len = arr.length ;
int temp ;
for (gap = len >> 1 ; gap > 0 ; gap >>= 1 ){
for ( j = gap; j < len ;j++ ){
temp = arr[j] ;
for (k = j - gap ; k >= 0 && arr[k] > temp ; k -= gap ){
arr[k+gap] = arr[k];
}
arr[k+gap] = temp ;
}
}
println(arr);
}
public static void insertSort3(List<Integer> list){
println(list);
int j , k , gap ;
int len = list.size();
int temp ;
for (gap = len >> 1; gap > 0 ; gap >>= 1 ){
for (j = gap ; j < len ; j++){
temp = list.get(j);
for (k = j - gap; k >= 0 && list.get(k) < temp ; k -= gap){
list.set(k+gap,list.get(k));
}
list.set(k+gap , temp );
}
}
println(list);
}
private static int[] getRandomArr(){
int arr[] = new int[10] ;
for (int i = 0; i < arr.length ; i++ ){
arr[i] = new Random().nextInt() % 100;
}
return arr ;
}
private static void println(int[] arr){
for (int i = 0; i < arr.length ; i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}
private static void print(String string){
System.out.print(string);
}
private static void println(){
System.out.println();
}
private static void println(int arg){
System.out.println(arg);
}
private static void println(List<Integer> list){
for (int i = 0; i < list.size() ; i++){
System.out.println(list.get(i));
}
}
}
希尔排序 ShellSort
最新推荐文章于 2023-05-29 11:43:48 发布