java重复元素全排序
2023-01-10阅读(373)
问:桶排序java怎么处理重复的元素
- 答:桶排序的核心思想是,将[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中重复项并排序
- 答:新建一个Map,把list取出来,以list中的每个内容做为键,以出现的次数作为值,然后把出现次数超过2次的拿出来,放到TreeSet中,就会自动排序了
- 答:list转map后进行处理。代码的事情就要你花时间处理了,自己花时间写的才是你的。如果你非要copy,那没办法提供了。
- 答:把值放在另一个list中, 依次比,一样的就标记,最后放入treeset, 排序,malala
问:java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置,我需要能够运行的程序!
- 答: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));
}
}