排序-JAVA实现【十】排序测试

简单工厂与策略模式实现排序测试
package org.lion.euler.study.sort;

import java.util.Arrays;

/**
 * 简单工厂 + 策略模式
 * 
 * @author lion
 *
 */
public class SortContext {
	public static enum SortType {SELECT, INSERT, BUBBLE, SHELL, MERGE, QUICK, RADIX, HEAP};

	AbstractSort abstractSort = null;
	
	public SortContext(SortType sortType){
		switch(sortType){
		case SELECT:
			abstractSort = new SelectSort(); 
			break;
		case INSERT:
			abstractSort = new InsertSort();
			break;
		case BUBBLE:
			abstractSort = new BubbleSort();
			break;
		case SHELL:
			abstractSort = new ShellSort();
			break;
		case MERGE:
			abstractSort = new MergeSort();
			break;
		case QUICK:
			abstractSort = new QuickSort();
			break;
		case RADIX:
			abstractSort = new RadixSort();
			break;
		case HEAP:
			abstractSort = new HeapSort();
			break;
		}
	}
	
	public void sort(Integer[] array){
		Integer[] temp = Arrays.copyOf(array, array.length);
		SortUtil.print(array);
		
		abstractSort.sort(temp);
		
		SortUtil.print(temp);
	}
}
package org.lion.euler.study.sort;

import org.lion.euler.study.sort.SortContext.SortType;

public class SortTest {

	private static Integer[] array = {100,55,111,23,10,24,57,21,78,65};
	
	public static void main(String[] args) {
		System.out.println("冒泡排序");
		SortContext sortContext = new SortContext(SortType.BUBBLE);
		sortContext.sort(array);
		
		System.out.println("插入排序");
		sortContext = new SortContext(SortType.INSERT);
		sortContext.sort(array);
		
		System.out.println("选择排序");
		sortContext = new SortContext(SortType.SELECT);
		sortContext.sort(array);
		
		System.out.println("希尔排序");
		sortContext = new SortContext(SortType.SHELL);
		sortContext.sort(array);
		
		System.out.println("归并排序");
		sortContext = new SortContext(SortType.MERGE);
		sortContext.sort(array);
		
		System.out.println("快速排序");
		sortContext = new SortContext(SortType.QUICK);
		sortContext.sort(array);
		
		System.out.println("基数排序");
		sortContext = new SortContext(SortType.RADIX);
		sortContext.sort(array);
		
		System.out.println("堆排序");
		sortContext = new SortContext(SortType.HEAP);
		sortContext.sort(array);
	}
	
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值