一、插入排序
1、核心内容
插入排序是一种简单且有效的比较排序算法,在每次迭代过程中算法随机的从输入序列中移除一个元素,并将该元素插入到排序序列中正确的位置,重复该过程,知道所有元素都被选择一次。
2、代码示例
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
int[]array = new int[count];
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextInt();
}
sorter(array);
System.out.println(Arrays.toString(array));
}
private static void sorter(int[] array) {
for (int i = 1; i < array.length; i++) {
int temp = array[i];
int j = i;
while (j > 0 && temp < array[j - 1]) {
array[j] = array[j - 1];
j--;
}
array[j] = temp;
}
}
二、希尔排序
1、核心内容
希尔排序又称缩小增量排序,该算法是一个泛化的插入排序
2、代码示例
public static void main(String[] args){
int[] ins = {2,3,5,1,23,6,78,34,23,4,5,78,34,65,32,65,76,32,76,1,9};
int[] ins2 = sort(ins);
for(int in: ins2){
System.out.println(in);
}
}
public static int[] sort(int[] ins){
int n = ins.length;
int gap = n/2;
while(gap > 0){
for(int j = gap; j < n; j++){
int i=j;
while(i >= gap && ins[i-gap] > ins[i]){
int temp = ins[i-gap]+ins[i];
ins[i-gap] = temp-ins[i-gap];
ins[i] = temp-ins[i-gap];
i -= gap;
}
}
gap = gap/2;
}
return ins;
}