Hill sort (exchange method, shift method)

exchange method

variable:

temp、gap

Ideas:

compare size, exchange

mobile method

variable:

index,val,gap

Ideas:

Same as insertion sort, but with a step size

import java.util.Arrays;

public class Queue8 {
	public static void main(String[] args) {
		int temp = 0;
		int[] arr = {8, 9, 1, 7, 2, 3, 5, 4, 6, 0};
		//交换法
//		for(int gap = arr.length / 2; gap > 0; gap /= 2) {
//			for(int i = gap; i < arr.length; i++) {
//				for(int j = i - gap; j >= 0 ; j-=gap) {
//					if(arr[j] > arr[j+gap]) {
//						temp = arr[j];
//						arr[j] = arr[j + gap];
//						arr[j + gap] = temp;
//					}
//				}
//			}
//		}
		//移动法
		for(int gap = arr.length / 2; gap > 0; gap /= 2) {
			for(int i = gap; i < arr.length; i++) {
				int index = i;
				int val = arr[index];
				if(arr[index] < arr[index - gap]) {
					while(index - gap >= 0 && arr[index - gap] > val) {
						arr[index] = arr[index - gap];
						index -= gap;
					}	
					arr[index] = val;
				}
			}
		}
		System.out.print(Arrays.toString(arr));
		
		
	}
}

Guess you like

Origin blog.csdn.net/qq_56127002/article/details/131599122