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

java实现直接插入排序

2016-09-17 13:52 330 查看
package 排序算法;

public class 直接插入排序 {
public static void main(String[] args) {
int[] arr = { 213213, 23, 12334, 5, 235 };
sort(arr);
}

private static void sort(int[] arr) {
/**
* 外层循环从数组中选出一个将要插入到有序数组的的数,
* 内层循环是遍历已经排好序的数组,将arr[i]插入到合适的位置中,其中arr[i]依次与排好序的前arr[i-1]个数字比较
* 比arr[i]大的依次后移。
*/
for (int i = 1; i < arr.length; i++) {// 依次挑选从第二个数字开始的无序数组,作为待插入的数字
int temp = arr[i];// temp为带插入的数
int j;
for (j = i - 1; j >= 0 && temp < arr[j]; j--) {// 带插入的数字依次与待插入数字之前的排好序的数字比较,比带插入数字大的依次后移
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;// 直到遇到比带插入数字大的位置跳出循环,并在该位置插入带插入的数字
}

for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k] + " ");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息