您的位置:首页 > 编程语言 > Java开发

java排序算法之二插入排序

2014-04-04 17:39 155 查看
首先还是介绍插入排序的原理:确定一个检索范围把最小的值放到数组第一个位接着把范围逐步扩大,把大的元素放到小元素后面。和冒泡排序比较起来就是在一定范围内速度比冒泡排序稍快,排序好的元素固定在一个范围,比较后直接整体移动。

代码解析:

int arr[]={49,38,65,97,76,13,27};

int temp = 0;
for(int i = 1; i < arr.length; i++){
temp = arr[i];
int j = i - 1;
for(; j >= 0 && temp > arr[j]; j--){
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
System.out.println("第" + i + "次排序:" + Arrays.toString(arr));
}

打印分析:

第0次排序:[13, 38, 65, 97, 76, 49, 27]

第1次排序:[13, 27, 65, 97, 76, 49, 38]

第2次排序:[13, 27, 38, 97, 76, 49, 65]

第3次排序:[13, 27, 38, 49, 76, 97, 65]

第4次排序:[13, 27, 38, 49, 65, 97, 76]

第5次排序:[13, 27, 38, 49, 65, 76, 97]

第6次排序:[13, 27, 38, 49, 65, 76, 97]

外层循环从第2个元素开始也就是从下标1开始固定,把最小的元素插入到第一的位置接着把第二小的查入到第二的位置一直到元素末尾。当然实现方式有很多种。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: