服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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

用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);

       }}

扫描关注微信公众号