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;
}
}
浙公网安备 33010602011771号