插入排序--代码详解

public class InsertionSort {数组

/**
 * @param args插入排序
 *            1:相似于玩斗地主对手中的牌进行排序,数组假设为还未摸到的牌,刚开始左手为空
 *             2:每摸一次牌交换摸到的牌与手中的牌进行比较,找到一个点插入
                  3 :进行下次摸牌比较,以后重复2
 */
public static void main(String[] args) {
	int sort[] = { 12, 34, 6, 7, 8, 89 };
	int key = 0;// 刚开始未摸牌
	int i = 0;// 左手中须要与其比较的牌索引
	for (int j = 2; j < sort.length; j++) {
		key = sort[j];// 给摸到的牌赋值

		i = j - 1;//手中的牌序列

		while (i >= 0 && sort[i] > key) {// 定义比较规范,数组下标从零开始的,左手中须要与其比较的牌
			sort[i + 1] = sort[i];// 每次循环移动一个位置
			i = i - 1;// 下标减一,从右到左
		}
		sort[i + 1] = key;// 元素替换

	}

	for (i = 0; i < sort.length; i++) {
		System.out.println(sort[i]);
	}
}

} //时间复杂度 c1n^2 c1表明常数,n表明须要排序的数的个数code

相关文章
相关标签/搜索