package com.redis.order; /** * 插入/希尔/归并 * 1.时间效率 * 2.空间复杂度 * 3.比较次数&交换次数 * 两个操作: * 1:比较 * 2:交换 * 4.稳定性 */ 特点:对一个已有顺序的序列进行排序 public class Sort1 { /** * 插入排序: * 生活场景:打扑克 * 手中的扑克进行排序 * @param args */ public static void main(String[] args) { int a[] = {9, 8, 7, 0, 1, 3, 2}; int length = a.length; for (int i = 1; i < length; i++) { //为什么从1开始?第一个不用排序,把数组从i=1分开 int data = a[i]; //后面的数 int j = i - 1; //前面的下标 for (; j >= 0; j--) { if (a[j] > data) { //拿着第一个数跟前面的数据进行比较,a[j]前面的数据 a[j + 1] = a[j]; //数据往后移动. } else { break; } } a[j + 1] = data; System.out.println("第" + i + "次排好序的结果为:"); for (j = 0; j < length; j++) { System.out.println(a[j] + " "); } System.out.println(); } //优化:希尔排序是插入排序的改进版 //分段进行排序 按照增量分段 add = n/2 10/2 =5 //对一个有序的序列进行排序,利用插入排序 } }
来源:CSDN
作者:航海到IT的转变,梦想一直在路上
链接:https://blog.csdn.net/wb_zjp283121/article/details/104124528