/** * * @ClassName: InsertionSort * @Description: 插入排序--正序(从小到大) * @author szren * @date 2018年5月30日 下午5:16:36 * *原理示意图 * 初始化数组 5,3,4,8,9,1,2,7,6 * * i=0 3,5, 4,8,9,1,2,7,6 ---前两个元素排序 * i=1 3,4,5, 8,9,1,2,7,6 ---前三个元素排序 * i=2 3,4,5,8, 9,1,2,7,6 ---前四个元素排序 * i=3 3,4,5,8,9, 1,2,7,6 ---前五个元素排序 * i=4 1,3,4,5,8,9, 2,7,6 ---前六个元素排序 * i=5 1,2,3,4,5,8,9, 7,6 ---前七个元素排序 * i=6 1,2,3,4,5,7,8,9, 6 ---前八个元素排序 * i=7 1,2,3,4,5,6,7,8,9, ---所有元素排序完成 * * 插入排序是基于比较的排序。通过比较数组中的元素大小,来调整元素的位置。 * 对于这类排序,就有两种基本的操作:①比较操作; ②交换操作. * 在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。 * 如此反复循环,直到全部排好顺序。 * */
import java.util.Arrays;public class InsertionSort {public static void main(String[] args) {int aa[] ={5,3,4,8,9,1,2,7,6};insertionSort(aa,aa.length);System.out.println("选择排序后的顺序::"+Arrays.toString(aa));}private static void insertionSort(int[] aa, int length) {for(int i=0;i<length-1;i++){for(int j=i+1;j>0;j--){if(aa[j]<aa[j-1]){int temp = aa[j-1];aa[j-1]=aa[j];aa[j]= temp;}}}}}