java吧 关注:1,286,351贴子:12,813,929

回复:高手进来帮帮忙,先在这里谢谢了,关于数组排序

只看楼主收藏回复

闹倒13L,哥给你实现,现在不晚吧


IP属地:北京16楼2012-05-04 09:09
回复
    public int[] reviseArr(int[] arr){
    int size = arr.length;
    int[] indexs = new int[size];
    int[] ints = new ints[5];
    Random ran = new Random();
    for(int i=0;i<5;i++){
    int idx = ran.nextInt(size);
    int val = arr[idx];
    if(include(ints,val)){
    i--;
    }
    ints[i] = val
    }
    }
    //差一个include方法


    IP属地:北京17楼2012-05-04 09:18
    回复
      2025-11-07 18:55:19
      广告
      不感兴趣
      开通SVIP免广告
      public int[] reviseArr(int[] arr){
      int size = arr.length;
      int[] indexs = new int[size];
      int[] ints = new ints[5];
      Random ran = new Random();
      for(int i=0;i<5;i++){
      int idx = ran.nextInt(size);
      int val = arr[idx];
      if(include(ints,val)){
      i--;
      }
      ints[i] = val
      }
      return ints;
      }
      private boolean include(int[] ints,int val){
      boolean flag = false;
      for(int i = 0;i<ints.length;i++){
      if(ints[i] == val){
      flag = true;break;
      }
      }
      return falg;
      }


      IP属地:北京18楼2012-05-04 09:23
      回复
        没测试 目测有bug 输出的数组没有0,因为int[] 默认值都是0, 可以用String[] 来解决


        IP属地:北京19楼2012-05-04 09:24
        回复
          public class RandomDraw {
          public static void main(String[] args) throws Exception {
          for(int i=0; i<10; i++) {
          System.out.println(RandomDraw.draw(
          Arrays.<Integer>asList(1, 2, 3, 4, 5, 6, 7), 5));
          }
          }
          public static <E> List<E> draw(List<E> candidates, int number) {
          if( candidates == null )
          throw new NullPointerException();
          if( number < 0 || number > candidates.size() )
          throw new IllegalArgumentException();
          if( number == 0 )
          return Collections.<E>emptyList();
          List<E> result = new ArrayList<E>(candidates);
          Random r = new Random();
          while( result.size() > number )
          result.remove(r.nextInt(result.size()));
          return result;
          }
          }


          IP属地:澳大利亚20楼2012-05-04 12:27
          回复



            IP属地:澳大利亚21楼2012-05-04 12:29
            回复