首页 > 代码库 > 数组相关操作

数组相关操作

public class ArryShuzu {
	public static Integer[] arr = new Integer[10];
	public static int element;

	
	/**
	 * 删除元素
	 * @param i
	 * @param target
	 */
	public static void del(int i, Integer[] target) {
		for (int j = i; j < target.length - 1; j++) {
			target[j] = target[j + 1];
		}
	}
	/**
	 * 指定位置插入元素
	 * @param index
	 * @param data
	 * @return
	 */
	public static Integer[] inset(int index, int data) {
		if (arr[index] == null) {
			for (int j = 0; j < index; j++) {
				arr[j] = 0;
			}
			element = index;
			arr[index] = data;

			return arr;
		}

		/**
		 * 加入元素 如果长度不够 不会把原来的数据给 挤掉
		 * 
		 * else{ 
		 * Integer[] newArray =new Integer[arr.length+1]; 
		 * for(int j=0;j<=arr.length;j++)
		 *   { if(j<index)
		 *       { newArray[j]=arr[j]; } 
		 *      else if(j==index)
		 *       { newArray[j]=data; } 
		 *      else{ newArray[j]=arr[j-1]; } 
		 *    }
		 * element=arr.length+1; 
		 * return newArray; 
		 * }
		 */

		else {
			for (int j = arr.length - 1; j > index; j--) {
				arr[j] = arr[j - 1];
			}
			arr[index] = data;
			element = arr.length;
			return arr;
		}

	}

	/**
	 * 显示数据
	 * @param arr
	 */
	public static void showDate() {
		for (int i = 0; i <= element - 1; i++) {
			System.out.println(arr[i]);
		}
	}

	/**
	 * 顺序插入数据
	 * @param data
	 */
	public static void insert(int data) {
		int i;
		for (i = 0; i < element; i++) {
			if (arr[i] > data) {
				break;
			}
		}
		for (int j = element; j > i; j--) {
			arr[j] = arr[j - 1];
		}
		arr[i] = data;
		element++;
	}
	
	/**
	 * 查找元素位置
	 */

	public static int showInde(int data){
		int i;
		for(i=0;i<element-1;i++){
			if(arr[i]==data)
				 break;
		}
		return i;
	}
	
	/**
	 * 二分法查找
	 */
	public static int showInde(int data,int id){
		int low=0;
		int mindle=0;
		int pow=element;
		
		while(true){
			mindle=(pow+low)/2;
			if(arr[mindle]==data){
				return mindle;
			}
			else if(arr[mindle]>data){
				pow=mindle-1;
			}
			else low=mindle+1;
		}
	}
}

数组相关操作