插入排序
1 算法步骤
1)将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
2 动画演示
3 参考代码
package com.tcxpz.insert; /** * 直接插入排序 * @author jgp QQ:1072218420 * */ public class InsertSort { public static void main(String[] args) { int[] arr = new int[]{5,3,4,7,2}; System.out.print("排序前:"); for(int num:arr) System.out.print(num+" "); System.out.println(); //进行排序 int[] bubble_arr = sort(arr); System.out.print("排序后:"); for(int num:bubble_arr) System.out.print(num+" "); } private static int[] sort(int[] arr) { for(int i=1;i<arr.length;i++){ // 记录要插入的数据 int temp=arr[i]; // 从已经排序的序列最右边的开始比较,找到比其小的数 int j=i; while(j>0&&temp<arr[j-1]){ arr[j]=arr[j-1]; j--; } // 存在比其小的数,插入 if(j!=i){ arr[j]=temp; } } return arr; } }