1. 程式人生 > >java不用任何已有方法完全自寫的去重法

java不用任何已有方法完全自寫的去重法

顯示 log 長度 class 數組元素 ack highlight 相等 java

package aa;
class InsertSort{
	private long[] a;
	private int nElems;
	//構造方法
	public InsertSort(int max){
		a = new long[max];
		nElems = 0;
	}
	//插入方法
	public void insert(long value){
		a[nElems] = value;
		nElems ++;
	}
	//顯示方法
	public void display(){
		for(int j = 0; j < nElems; j++)
		{
			System.out.println(a[j] + " ");
		}
		System.out.println("");
	}
	//排序方法
	public long[] insertionSort(){
		int out,in;
		for(out = 1; out < nElems; out++)
		{
			long temp = a[out];
			in = out;
			while(in > 0 && a[in-1] >= temp)
			{
				a[in] = a[in - 1];
				in --;
			}
			a[in] = temp;
		}
		return a;
	}
	//去重方法
	public void noDups(long[] arr){
		
		for(int i = 1; i < nElems - 1; i++)//遍歷數組元素,從第二項開始
		{
			for(int j = 0; j < i ; j++)//每一輪比較的次數
			{
				if(a[j] == a[i]) //如果遍歷項和之前某一項相等
				{
					int k = i;//取出遍歷項的索引
					while(k+1 < nElems){//遍歷 遍歷項之後的元素項
						a[k] = a[k+1];//將遍歷項之後的元素項前移一位
						k++;						
					}
					nElems --;//數組長度減一
					i--;//因為遍歷項後一項前移到遍歷項,如果i不減一則少比較一項
				}
				
			}
		}
	}
}
public class InsertSortApp {
	public static void main(String[] args){
		int maxSize = 100;
		InsertSort arr = new InsertSort(maxSize);
		
		arr.insert(77);
		arr.insert(99);
		arr.insert(44);
		arr.insert(55);
		arr.insert(22);		
		arr.insert(88);
		arr.insert(11);
		arr.insert(00);
		arr.insert(77);
		arr.insert(77);
		
		arr.display();
		long[] sortarr = arr.insertionSort();
		arr.display();
		arr.noDups(sortarr);
		arr.display();
	}
	
}

  

java不用任何已有方法完全自寫的去重法