先来看一张便于理解插入的动图

package com.company;
/**
*插入排序
*@author g0rez
*@data 2021-05-13
*最佳情况:T(n) = O(n) 最坏情况:T(n) = O(n2) 平均情况:T(n) = O(n2)
*/
public class 插入排序 {
public static void main(String[] args) {
int[] arr =new int[]{2,4,3,5,6,1,7,8,10,9};
insertSort(arr);
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
private static void insertSort(int[] arr) {
int i,j,temp;
for(i=1;i<arr.length;i++) {
temp=arr[i];
for(j=i-1;j>=0;j--) {
if(temp>arr[j]) {
break;
}else {
arr[j+1]=arr[j];
}
}
arr[j+1]=temp;
}
}
}
本文介绍了Java实现的插入排序算法,展示了如何通过插入排序将一个无序数组进行升序排列。代码中详细注释了算法过程,适用于初学者理解。在最佳情况下,插入排序的时间复杂度为O(n),最坏和平均情况为O(n^2)。
1793

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



