Sorting-JAVA Implementation [10] Sorting Test

Simple factory and strategy pattern to implement sorting test
package org.lion.euler.study.sort;

import java.util.Arrays;

/**
 * Simple Factory + Strategy Mode
 *
 * @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 GO:
			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("bubble sort");
		SortContext sortContext = new SortContext(SortType.BUBBLE);
		sortContext.sort(array);
		
		System.out.println("Insertion Sort");
		sortContext = new SortContext(SortType.INSERT);
		sortContext.sort(array);
		
		System.out.println("Select Sort");
		sortContext = new SortContext(SortType.SELECT);
		sortContext.sort(array);
		
		System.out.println("Hill Sort");
		sortContext = new SortContext(SortType.SHELL);
		sortContext.sort(array);
		
		System.out.println("Merge Sort");
		sortContext = new SortContext(SortType.MERGE);
		sortContext.sort(array);
		
		System.out.println("Quick Sort");
		sortContext = new SortContext(SortType.QUICK);
		sortContext.sort(array);
		
		System.out.println("Radix sort");
		sortContext = new SortContext(SortType.RADIX);
		sortContext.sort(array);
		
		System.out.println("Heapsort");
		sortContext = new SortContext(SortType.HEAP);
		sortContext.sort(array);
	}
	
}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325980844&siteId=291194637