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

算法实现Java之插入排序

2017-10-12 18:19 239 查看
package com.gpf.arithmetic;

public class InsertSort {

//前面的数是排序好的,然后后面的数插入到排序好的树中的适当位置
public static void main(String[] args) {
int [] a = {12,2545,78,2,0,-98,-79,11};
insertSort(a);
for (int i : a) {
System.out.println(i + "  ");
}
}

private static void insertSort(int[] a) {
//初始状态,第一个数默认是排序好的
for(int i = 1; i < a.length; i++){
int temp = a[i];//因为数组要后移,可能覆盖,所以需要把此位置的数值保存下来
if(a[i]<a[i-1]){//如果要插入的数比最大的数还大,不需要改变 只需要考虑要插入的数小于已排好序的最大数
//寻找最适合的位置
int j;
for(j = i-1; j>=0&&a[j]>temp; j--){
//未找到,则数组后移
a[j+1] = a[j];
}
//跳出循环 把值放入此位置
a[j+1] = temp;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: