java不用任何已有方法完全自寫的去重法
阿新 • • 發佈:2017-09-17
顯示 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不用任何已有方法完全自寫的去重法