首页 > 解决方案 > 使用 for 循环对字符串进行排序

问题描述

我正在尝试使用两个 for 循环按字母顺序对字符串列表进行排序。

具体来说,我不允许使用java.util.Collections.sort().

for(int i = 0; i < str.size(); i++)
{
    for (int j = i+1; j < str.size(); j++)
    {
        if(str.get(i).compareTo(str.get(j))< 0)
        {
            String temp;
            str.add(temp);
            str.set(str.get(temp),str.get(i));
            str.set(i, str.get(j));
        }
    }
}

这是我到目前为止所拥有的。这个想法是它可以与任何列表一起使用。我不断遇到的主要问题是如何添加一个临时字符串以将数据保留在iand中j

标签: javasortingbubble-sort

解决方案


您不想将临时字符串添加到您正在排序的数组列表中 - 您应该使用它来交换两个值:

String temp = str.get(i);
str.set(i, str.get(j)); // this overwrites str.get(i),
                        // hence the need for temp
str.set(j, temp);

此外,您所做的并不是真正的冒泡排序:-)

维基百科有关于最常见算法/问题的精彩文章,是开始编程的绝佳资源,例如https://en.wikipedia.org/wiki/Bubble_sort

欢迎来到编程群!


推荐阅读