基本数据结构复习

package jxau.blueDot.lyx;

/**
 * 
 * @author lyx
 *	@下午3:47:58
 * @TODO:
 * 	数组删除方法
 */

/**
 * 删除算法时间代价:
 * 	设n  = right - left +1是数组o[left...right]的长度,那么删除的位置可能是
 * left到right之间,对应的复制次数在n-1到0之间,平均复制次数=(n-1)/2 ,
 * 所以数组删除算法的时间代价是O(n)
 * 
 */
public class ArrayDelete {

	static void delete(Object o[] , int left , int right , int pos){
		
		//判断越界
		if(pos < left || pos > right){
			
			throw new IllegalStateException();
			
		}
		
		//删除位置之后的元素左移
		for(int i = pos ; i<right ; i++){
			o[i] = o[i+1];
		}
		
		//将最后一个元素至为空
		o[right] = null;
	}
}

注意:最后一个元素为空!

你可能感兴趣的:(基本数据结构复习)