插入排序是数据结构中一种常见的排序方式,原理简单。把数组分为两部分,一部分为有序集合,一部分为无序集合。假设数组大小为N,有序集合大小为i,依次从无序集合中拿出一个数组向有序集合中加入,直至无序集合大小为0。最多要执行1+2+3+...+N-1=(N-1)*N/2次,所以复杂度为O(N^2),空间复杂度为O(1)。
Java中用泛型的方法来实现插入排序,即可以输入不同类型的对象。我们可以继承Comparable接口。具体可以查看API文档。
实现方法:
public static <E extends Comparable<E>>void insertSort(E[] list) {
for(int i=1;i<list.length;i++){
for(int j=i-1;j>=0;j--){
if(list[j+1].compareTo(list[j])<0)
{
E swap=list[j];
list[j]=list[j+1];
list[j+1]=swap;
}
else break;
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。