排序算法笔记:插入排序 InsertionSort

/**
 * 插入排序
 * 简述:
 * 		获取array[i],并将array[i]插入于array[j+1]处,其中j<=i,并且array[j]<array[i] && array[j+1]>=array[i]
 * 时间复杂度:
 * 		Θ(n^2)
 * 空间复杂度:
 * 		O(1)
 * 优点:
 * 		
 * 缺点:
 * 		
 * 可改进:
 * 		
 * @author CheN
 * 
 */
public class InsertionSort {
	/**
	 * 正序
	 * @param array
	 * @return
	 */
	public static int[] asc( int[] array ) {
		for (int i = 1; i < array.length ; i++) {
			int key = array[i];
			int j = i - 1;
			//若key小于array[j],则将array[j]向后挪一位
			while ( j >= 0 && array[j] > key ) {
				array[j + 1] = array[j];
				j = j - 1;
			}
			array[j + 1] = key;
		}
		return array;
	}
}


若有错误或不妥之处,敬请谅解并指点。

你可能感兴趣的:(算法,排序,插入排序,sort,insertionsort,insertion)