java排序算法:常用的各种排序算法的JAVA实现

用JAVA把《Data Structure and Algoritm Analysis in C》里面的排序算法实现了。[ft=,3,Times]整个结构我使用的是Strategy模式。由Sort类扮演环境角色,SortStrategy扮演抽象策略角色。 具体策略角色有六个,分别是InsertSort、BubbleSort、ChooseSort、ShellSort、MergeSort、QuickSort。分别是插入排序、冒泡排序、选择排序、希尔排序、归并排序和快速排序。


[ft=,3,Times]SortStratey接口:




[ft=,3,][ft=,,Times]package Utils.Sort;

[ft=,3,][ft=,,Times]/**
[ft=,3,][ft=,,Times]* 排序算法的接口
[ft=,3,][ft=,,Times]*/
[ft=,3,][ft=,,Times]interface SortStrategy
[ft=,3,][ft=,,Times]{
[ft=,3,][ft=,,Times] /**
[ft=,3,][ft=,,Times] * 利用各种算法对实现了[ft=,,Times]Comparable 接口的数组进行升序排列
[ft=,3,][ft=,,Times] */
[ft=,3,][ft=,,Times] public void sort(Comparable[] obj);
[ft=,3,Times]}



Sort类:




[ft=,3,][ft=,,Times]package Utils.Sort;
[ft=,3,][ft=,,Times]/**
[ft=,3,][ft=,,Times]* 排序类,通过此类的[ft=,,Times]sort() 可以对实现了[ft=,,Times]Comparable 接口的数组进行升序排序
[ft=,3,][ft=,,Times]*/
[ft=,3,][ft=,,Times]public class Sort
[ft=,3,][ft=,,Times]{
[ft=,3,][ft=,,Times] private SortStrategy strategy;

[ft=,3,][ft=,,Times] /**
[ft=,3,][ft=,,Times] * 构造方法,由[ft=,,Times]type 决定由什么算法进行排序,排序方法的单词守字母要大字, [ft=,3,]如对于快速排序应该是
[ft=,3,][ft=,,Times]uickSort
[ft=,3,][ft=,,Times] *@param type 排序算法的类型
[ft=,3,][ft=,,Times] */
[ft=,3,][ft=,,Times] public Sort(String type)
[ft=,3,][ft=,,Times] { [ft=,3,][ft=,,Times] try
[ft=,3,][ft=,,Times] { [ft=,3,][ft=,,Times] type = "Utils.Sort." + type.trim();
[ft=,3,][ft=,,Times] Class c = Class.forName(type);
[ft=,3,][ft=,,Times] strategy = (SortStrategy)c.newInstance();
[ft=,3,][ft=,,Times] }
[ft=,3,][ft=,,Times] catch (Exception e)
[ft=,3,][ft=,,Times] { [ft=,3,][ft=,,Times] e.printStackTrace();
[ft=,3,][ft=,,Times] }
[ft=,3,][ft=,,Times] }

[ft=,3,][ft=,,Times] /**
[ft=,3,][ft=,,Times] * 排序方法,要求待排序的数组必须实现[ft=,,Times]Comparable 接口
[ft=,3,][ft=,,Times] */
[ft=,3,][ft=,,Times] public void sort(Comparable[] obj)
[ft=,3,][ft=,,Times] {
[ft=,3,][ft=,,Times] strategy.sort(obj);
[ft=,3,][ft=,,Times] } [ft=,3,Times]}
Tags:  快速排序算法 排序算法 常用排序算法 java排序算法

延伸阅读

最新评论

发表评论