【问题标题】:how to use sorting in java without using the collections.sort(list);? [closed]如何在不使用 collections.sort(list); 的情况下在 java 中使用排序? [关闭]
【发布时间】:2015-07-28 22:53:11
【问题描述】:

我有这段代码,我想知道要使用的排序算法,而不是Collections.sort(list); 函数

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

    public class sorting {
        public static void main (String[]args){
            Random I  = new Random();
            List<Integer> list = new ArrayList<Integer>();
            int number; 

            for(int counter=1; counter<=20;counter++){
                number = I.nextInt(100);
                while(list.contains(number)) {
                    number = I.nextInt(100);
                }
                list.add(number);
            }
            Collections.sort(list);
            System.out.println(list);
        }
    }

【问题讨论】:

  • 所以编写自己的排序算法或导入一些 3rd 方 JAR。
  • 你的问题到底是什么?
  • idk 怎么做在排序部分不好我尝试了几次冒泡排序但我无法做到@Mick Mnemonic
  • 您可以搜索该站点以找到具有解决方案的类似问题:stackoverflow.com/questions/11644858/bubblesort-implementation
  • 所以你的实际问题是“Collections.sort() 使用了什么排序算法”?我对吗?它可能是快速排序或合并排序。

标签: java sorting


【解决方案1】:

您可以使用快速排序(基于分而治之算法)实现,其平均情况为 Θ(n log(n)),最坏情况下为 Θ(n2)。它通过将您的数组划分为左右子数组进行排序,然后它采用一个枢轴值并处理整个数组。这也是快速排序也很快的原因之一。你可以在Quick Sort 上找到它的实现。他们在不使用 Collections.sort 的情况下完成了快速排序的整个实现(这基本上也是您的要求)。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2016-01-23
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2014-06-25
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多