java - 我该如何冒泡排序?

标签 java algorithm sorting bubble-sort array-algorithms

在这个程序中,我只想对 ArrayList words 进行冒泡排序。到目前为止,我使用了 Collections.sort 并将所有行按字母顺序放置在文本文件中。但是,我想为这个程序实现一个二进制搜索算法但是,我认为如果不对数据进行排序(例如归并排序、冒泡排序)是不可能的。我可能是错的,但这就是我来这里寻求指导和知识的原因。

其次,当我创建一个排序方法时,这是一个 words 是一个 String 而不是 String[]。我该如何使用这种数据类型进行冒泡排序?

public static void main(String[]args) throws IOException{
    Scanner scan = new Scanner(System.in);
    String stringSearch = scan.nextLine();

    ArrayList<String> words = new ArrayList<String>();
    BufferedReader reader = new BufferedReader(new FileReader("File1.txt"));

    String line;

    while ((line = reader.readLine()) != null) {                
        words.add(line);
    }reader.close();

    Collections.sort(words);
    for(String str:words)
        System.out.println(str); 

    for(String sLine : words) 
    {
        if (sLine.contains(stringSearch)) 
        {
            int index = words.indexOf(sLine);
            System.out.println("Got a match at line " + index);

        }
     }

    System.out.println(words.size());
}

最佳答案

首先,您可以使用 Collections.sort(Collection) 对列表进行排序。

其次,您可以使用 ArrayList 实现的 List.get(int) 来实现 O(1) 索引访问。

第三,Object.compareTo(Object) 将完成指导二分搜索循环的工作。

抱歉,如果我误解了什么!

关于java - 我该如何冒泡排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14228380/

相关文章:

python - 如何选择模糊匹配算法?

c - 三度树的递归和非递归遍历

c++ - LeetCode 15:使用 HashMap 的3Sum

java - 如何在 android 4.4 及更高版本中以编程方式检查我是否打开了 gps?

java - 为什么jsp页面中JSTL标签被忽略?

c - 使用 strtok() 后如何恢复字符串

JavaScript 按字母顺序排序不对所有值进行排序

c++ - 创建并打印链表

java - 如何在 Spring 中从文件连接 JSON 数据?

java - 由于多个可能的 bean,Spring Boot Autowiring 泛型失败