標籤:ack 顯示 pack static 相等 pre 數組元素 out i++
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不用任何已有方法完全自寫的去重法