用java把《data structure and algoritm analysis in c》里面的排序算法实现了。整个结构我使用的是strategy模式。由sort类扮演环境角色,sortstrategy扮演抽象策略角色。具体策略角色有六个,分别是insertsort、bubblesort、choosesort、shellsort、mergesort、quicksort。分别是插入排序、冒泡排序、选择排序、希尔排序、归并排序和快速排序。
因为代码量比较大,所以分为几次贴出,这次只贴出sort和sortstrategy的代码。
sortstratey接口:
package utils.sort;
/**
*排序算法的接口
*/
interface sortstrategy
{
/**
*利用各种算法对实现了comparable接口的数组进行升序排列
*/
public void sort(comparable[] obj);
}
sort类:
package utils.sort;
/**
*排序类,通过此类的sort()可以对实现了comparable接口的数组进行升序排序
*/
public class sort
{
private sortstrategy strategy;
/**
*构造方法,由type决定由什么算法进行排序,排序方法的单词守字母要大字,如对于快速排序应该是
uicksort
*@param type 排序算法的类型
*/
public sort(string type)
{ try
{ type = "utils.sort." + type.trim();
class c = class.forname(type);
strategy = (sortstrategy)c.newinstance();
}
catch (exception e)
{ e.printstacktrace();
}
}
/**
*排序方法,要求待排序的数组必须实现comparable接口
*/
public void sort(comparable[] obj)
{
strategy.sort(obj);
}}
闽公网安备 35060202000074号