准备大三了,巩固一下简单的算法。
先是插入排序。对于少量元素,它是一个有效的算法。
最坏情况运行时间O(n^2),平均情况运行时间O(n^2)。
下面是java 的代码:
//插入排序
public class Insertion_sort {
public static void main(String[] args) {
int []arr=new int[10];
//随机产生数组
for(int i=0;i<10;i++)
{
arr[i]=(int)(Math.random()*100+1);
}
//打印排序前数组
System.out.println("排序前:");
for(int i=0;i<10;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
//核心算法
int value;
for(int i=1;i<10;i++)
{
value=arr[i];
int j=i-1;
while(j>=0&&arr[j]>value)//比value大的数依次往后退
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=value;
}
System.out.println("插入排序后:");
for(int i=0;i<10;i++)
{
System.out.print(arr[i]+" ");
}
}
}
运算结果:
排序前:
36 80 12 78 90 31 3 42 96 21插入排序后:
3 12 21 31 36 42 78 80 90 96