数据结构删除重复

时间:2014-04-12 09:05:31

标签: arrays data-structures

我遇到了删除重复的问题(删除  方法)..当我想调用它时,它在编译之前显示错误

package lap;

import java.util.Arrays;
import java.util.Scanner;

public class MySelectionSort {

  public static int[] doSelectionSort(int[] arr){

    for (int i = 0; i < arr.length - 1; i++)
    {
      int index = i;
      for (int j = i + 1; j < arr.length; j++)
        if (arr[j] < arr[index])
          index = j;

      int smallerNumber = arr[index];
      arr[index] = arr[i];
      arr[i] = smallerNumber;
    }
    return arr;
  }

  public static void main(String a[]){
    int N;
    Scanner scan=new Scanner(System.in);
    System.out.print(" enter array size");
    N=scan.nextInt();
    int []A=new int[N];

    System.out.print(" enter array elments");

    for (int i=0; i<N;i++){
      A[i]=scan.nextInt();
    }
    // int[] arr1 = {10,34,2,56,7,67,88,42};
    //int[] arr=removeDuplicates(A);
    int[] arr6=Deletion(A);

    int[] arr2 = doSelectionSort(arr6);
    for( int i=0;i<arr2.length;i++){
      System.out.print(arr2[i]);
      System.out.print(", ");
    }
  }
  public static void Deletion(int [] array){
    for(int i=0; i<array.length;i++){
      for(int j=i+1;j<array.length;j++){
        if(array[i]==array[j]){
          array[i-1]=array[i];
        }

      }
    }
    return;
  }
}

1 个答案:

答案 0 :(得分:0)

如果你只想删除重复,我宁愿建议你使用set插入元素并迭代set来检索它们,或者如果需要直接从set中使用。

如果您想改进代码,则应该

public static void Deletion(int [] array){
   int len = array.length;
   for(int i=0; i < len;i++){
       for(int j=i+1;j<len;j++){
          if(array[i]==array[j]){
              array[j] = array[--len];
              --j;
          } 
    }
    /* Resize your array to size len here */
}