您的位置:首页 > 其它

插入排序

2019-08-30 18:28 1291 查看

插入排序

将数组分为两个区间,已排序区间与未排序区间,初始已排序区间只有第一个元素,其核心思想是取未排序区间的元素,在已排序好的区间合适的位置插入,保证已排序数据一直有序,重复这个过程,直到未排序区间中元素为空。

package suanfa;

public class InsertionSort {

public static void InsertionSort01(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}

for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0 && arr[j] > arr[i]; j--) {  //j >= 0 不越界
swap(arr, i, j);
}
}
}

public static void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;

}

public static void main(String[] args) {
int[] arr = { 0, 51, -94, 65, 888 };
System.out.println(java.util.Arrays.toString(arr));
InsertionSort01(arr);
System.out.println(java.util.Arrays.toString(arr));
}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: