Kotlin 程序按字典顺序(词典顺序)对元素进行排序

示例:按字典顺序排序字符串的程序

fun main(args: Array<String>) {

    val words = arrayOf("Ruby", "C", "Python", "Java")

    for (i in 0..2) {
        for (j in i + 1..3) {
            if (words[i].compareTo(words[j]) > 0) {

                // swap words[i] with words[j[
                val temp = words[i]
                words[i] = words[j]
                words[j] = temp
            }
        }
    }

    println("In lexicographical order:")
    for (i in 0..3) {
        println(words[i])
    }
}

运行程序后,输出将是

In lexicographical order:
C
Java
Python
Ruby

在上面的程序中,要排序的 5 个单词存储在名为 words 的变量中。

然后,我们遍历每个单词(words[i]),并将其与数组中它后面的所有单词(words[j])进行比较。这是通过使用字符串的 compareTo() 方法完成的。

如果 compareTo() 的返回值大于 0,则需要交换它们的位置,即 words[i] 应该排在 words[j] 之后。因此,在每次迭代中,words[i] 都包含最早的单词。

执行步骤
迭代 初始单词 i j words[]
1 { "Ruby", "C", "Python", "Java" } 0 1 { "C", "Ruby", "Python", "Java" }
2 { "C", "Ruby", "Python", "Java" } 0 2 { "C", "Ruby", "Python", "Java" }
3 { "C", "Ruby", "Python", "Java" } 0 3 { "C", "Ruby", "Python", "Java" }
4 { "C", "Ruby", "Python", "Java" } 1 2 { "C", "Python", "Ruby", "Java" }
5 { "C", "Python", "Ruby", "Java" } 1 3 { "C", "Java", "Ruby", "Python" }
最终 { "C", "Java", "Ruby", "Python" } 2 3 { "C", "Java", "Python", "Ruby" }

这是等效的 Java 代码:Java 程序按字典顺序排序单词

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战