public class InsertSort {
public InsertSort(int a[],int length)
{
int temp=0;//哨兵
for(int i=1;i<length;i++)
{
int j=0;
temp=a[i];
for(j=i-1;j>=0;j--)
{
if(a[j]<=temp)
break;
else
{
a[j+1]=a[j];
}
}
a[j+1]=temp;
}
}
public static void main(String[] args) {
int a[] = new int[100];
for (int i = 0; i < a.length; i++) //产生0-10001的数组
a[i]=(int)(Math.random()*1000+1);
// int a[] = {1, 6, 23,21};
new InsertSort(a, a.length);
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}
最好的时间复杂度是O(N)
最坏情况下为逆序没时间复杂度是O(N²)
平均时间复杂度是O(N²)