排序算法复习(Java 实现)(一): 插入,冒泡,选择,Shell,快速排序
为了便于管理,先引入个基础类:
package algorithms;
/**
* @author yovn
*
*/
public abstract class Sorter<E extends Comparable<E>> {
public abstract void sort(E[] array,int from ,int len);
public 'nal void sort(E[] array)
{
sort(array,0,array.length);
}
protected 'nal void swap(E[] array,int from ,int to)
{
E tmp=array[from];
array[from]=array[to];
array[to]=tmp;
}
}
一 插入排序
该算法在数据规模小的时候十分高效,该算法每次插入第 K+1 到前 K 个有序数组中一个合
适位置,K 从 0 开始到 N-1,从而完成排序:
package algorithms;
/**
* @author yovn
*/
public class InsertSorter<E extends Comparable<E>> extends Sorter<E> {
/* (non-Javadoc)
* @see algorithms.Sorter#sort(E[], int, int)
*/
public void sort(E[] array, int from, int len) {
E tmp=null;
for(int i=from+1;i<from+len;i++)
{
tmp=array[i];
int j=i;
for(;j>from;j--)
评论1
最新资源