虽然很早在这里安家了,但是到现在没写过一篇博文,今决定从今天开始将开始用博文记录我的学习点滴,供自己回顾,若能给他人一点启示,那便是好事成双。今天就写一下一个算法的入门--插入排序。
伪代码:
for i<- 2 to length[A]
do key <- a[i]
j<- i-1
//比较得到插入位置同时将前面排好序的向后移
while j>0 and A[j] > key
A[j+1] <- A[j]
j <- j-1
A[j+1] <- key //插入
下面是Java代码实现:
public static int[] insertSortAsc(int[] arr){
if(arr.length < 2){
return arr;
}
for(int i=1; i<arr.length; i++){
int key = arr[i];
int j = i - 1;
while(j>-1 && arr[j]>key){
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
return arr;
}main方法中测试代码:
//随机生成一个长度为20的int类型数组
int[] array = getRandomArray(20);
System.out.println("未排序数组:" + Arrays.toString(array));
insertSortAsc(array);
System.out.println("插入排序好:" + Arrays.toString(array));测试结果:
未排序数组:[58, 55, 93, 61, 61, 29, 68, 0, 22, 7, 88, 28, 51, 89, 9, 78, 98, 61, 20, 58]
插入排序好:[0, 7, 9, 20, 22, 28, 29, 51, 55, 58, 58, 61, 61, 61, 68, 78, 88, 89, 93, 98]
本文介绍了插入排序的基本原理,并提供了详细的Java实现代码。通过一个简单的例子展示了如何使用插入排序算法对整数数组进行排序。
2071

被折叠的 条评论
为什么被折叠?



