java重复元素全排序

java重复元素全排序

问:桶排序java怎么处理重复的元素
  1. 答:桶排序的核心思想是,将[0,1)分为n个大小相同的子区间,
    * 上一个区间里的元素都比下一个区间里的元素小,然后对
    * 所有区间里的元素排序,最后顺序输出所有区间里的元素,
    * 达到对所有元素排序的目的。
    * @author yuncong
    *
    */
    public class BucketSort {
    public void sort(Double[] a) {
    int n = a.length;
    /**
    * 创建链表(桶)集合并初始化,集合中的链表用于存放相应的元素
    */
    int bucketNum = 10; // 桶数
    LinkedList<LinkedList<Double>> buckets = new LinkedList<LinkedList<Double>>();
    for(int i = 0; i < bucketNum; i++){
    LinkedList<Double> bucket = new LinkedList<Double>();
    buckets.add(bucket);
问:java输出list中重复项并排序
  1. 答:新建一个Map,把list取出来,以list中的每个内容做为键,以出现的次数作为值,然后把出现次数超过2次的拿出来,放到TreeSet中,就会自动排序了
  2. 答:list转map后进行处理。代码的事情就要你花时间处理了,自己花时间写的才是你的。如果你非要copy,那没办法提供了。
  3. 答:把值放在另一个list中, 依次比,一样的就标记,最后放入treeset, 排序,malala
问:java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置,我需要能够运行的程序!
  1. 答:public class ArrayTest {
    public static void main(String[] args) {
    //java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置
    int[] ary = {1,2,3,4,1,2};
    int[] index = new int[ary.length];
    for (int i = 0; i < index.length; i++) {
    index[i] = i;
    }
    for (int i = 0; i < ary.length-1; i++) {
    for (int j = i+1; j < ary.length; j++) {
    if(ary[i]>ary[j]){
    int temp = ary[i];
    int p = index[i];
    ary[i] = ary[j];
    index[i] = index[j];
    ary[j] = temp;
    index[j] = p;
    }
    }
    }
    System.out.println(Arrays.toString(ary));
    System.out.println(Arrays.toString(index));
    }
    }
java重复元素全排序
下载Doc文档

猜你喜欢