package com.arithmetic.sort; public class InsertSort { public static void main(String[] args) { /** * * 从第一个元素开始,该元素可以认为已经被排序 * 取出下一个元素,在已经排序的元素序列中从后向前扫描 * 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3, * 直到找到已排序的元素小于或者等于新元素的位置 * 将新元素插入到该位置中 * 重复步骤2~5 */ int [] arrays = new int[]{7,15,6,99,13,12,12,56,100,67}; //设置循环次数,因已假设第1个数已经被排序,所以从第1个数开始 for(int x = 1; x < arrays.length; x++){ //利用倒叙的方式,让y=x,y--,每次循环都会依次从后向前比较直到y=0 for(int y = x; y > 0; y--){ if(arrays[y] < arrays[y-1]){ int tmp = arrays[y-1]; arrays[y-1] = arrays[y]; arrays[y] = tmp; } } System.out.println("第"+x+"次比较"); for(int i = 0; i<arrays.length;i++){ System.out.print(arrays[i]+" "); } System.out.println(); } } }
算法-插入排序
猜你喜欢
转载自nicky19870612.iteye.com/blog/2083301
今日推荐
周排行