算法-插入排序

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