package com.cellstrain.icell.util;

public class test {
    /**
     * 数组排序及删除重复元素
     * @param args
     */
    public static void main(String[] args) {
        int arr[]={1,2,2,5,9,4,3};//数组
        int [] t = sour(arr);
        for (int i : t) {
            System.out.print(i+"   ");
        }
    }
    /**
     *
     * @param arr需排序的数组
     * @return
     */
    static int[] sour(int [] arr){//排序
        int as[] = null;//声明存放删除后的数组
        for(int i =0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){//相邻两个比大小
                    int b = arr[i];//以下三行交换位置
                    arr[i]=arr[j];
                    arr[j]=b;
                }else if (arr[i]==arr[j]) {//如果有相同重复的
                    as=rovme(arr,i);//调用删除方法
                    sour(as);//自调用,删除元素后调用自身重新排序,可删除多个重复值
                }
            }
        }
        return as;
    }
    //删除方法 其实就是覆盖前一位
    /**
     *
     * @param arr需删除元素的数组
     * @param t需要删除的元素指定下表
     * @return
     */
    static int[] rovme(int arr[],int t){
        int arrs[]=new int[arr.length-1];//存放删除后的数据
        for (int i = 0; i < arrs.length; i++) {
            if(i<t){//要删除之前的下标直接拿到新数组
                arrs[i]=arr[i];
            }else {//跳过当前下表所以i+1
                arrs[i]=arr[i+1];
            }
        }
        return arrs;
    }
}