基本有序种子数据结构 - NearSorted

package com.victor.sort.seeds;

import java.util.ArrayList;

/**
 * 基本有序
 * @author 黑妹妹牙膏
 *
 */
public class NearSorted extends Seeds {

	@Override
	protected ArrayList<Integer> doGenerate(int size) {
		ArrayList<Integer> seedsList = new ArrayList<Integer>();
		java.util.Random rd = new java.util.Random();
		for(int i=0;i<getSize();i++)
		{
			int nextValue = rd.nextInt(20)+3*i;
			seedsList.add(nextValue);
		}
		return seedsList;
	}

	@Override
	public String getDescriptions() {
		return "Sorting nearly sorted data is quite common in practice. Some observations:/n/r"+ 
				"■Insertion sort is the clear winner on this initial condition./n/r"+
				"■Bubble sort is fast, but insertion sort has lower overhead./n/r"+ 
				"■Shell sort is fast because it is based on insertion sort. /n/r"+ 
				"■Merge sort, heap sort, and quick sort do not adapt to nearly sorted data." +
				"/n/r" +
		   "Insertion sort provides a O(n2) worst case algorithm " +
		   "that adapts to O(n) time when the data is nearly sorted. " +
		   "One would like an O(n·lg(n)) algorithm that adapts to this situation; " +
		   "smoothsort is such an algorithm, but is complex. Shell sort is the only " +
		   "sub-quadratic algorithm shown here that is also adaptive in this case.";
	}

	@Override
	public String getName() {
		return "Near Sorted";
	}
	
	public static void main(String[] args)
	{
		Seeds rd = new NearSorted();
		rd.setSize(20);
		rd.generate();
		rd.print();
	}
}


你可能感兴趣的:(java,排序算法,NearSorted)