Java插入排序代码分析

还是的好好研究一下算法,不是说计算机编程本质上就是数据结构和算法吗!

public class InsertSortTest {
	
	public static void main(String[] args) {
		int a[] = {100,2,9,6,3,4,7,45,11,1,8,22};
		insertSort(a);
		System.out.println(Arrays.toString(a));
	}
	
	/*
	 * 插入排序的原理其实就跟生活中的摸牌差不多,桌上有一堆牌,手上有你摸上来的牌,你手上的牌是有顺序的,
	 * 你摸上来的牌要跟手上的牌进行比较,从左到右,插入到比他小的那一张牌的前面。
	 * 
	 */
	public static void insertSort(int []a)
	{
		for (int j = 1;j<a.length ;j++ )//这个方法相当于先把桌上的牌都放到你手里 
		{
			int key = a[j];//第一次,这个代表第二张牌
			int i = j-1;//这个指向第一张牌
			while(i>=0&&a[i]>key)//如果第一张比第二张大,
			{
				a[i+1] = a[i];//把第一张交换到第二的位置
				i--;//
			}
			a[i+1] = key;//把第二张交换到第一的位置
		}
	}
}
如果你觉得对你有帮助,劳烦你顶一下。

你可能感兴趣的:(算法,插入排序)