【发布时间】:2015-05-03 11:35:00
【问题描述】:
我阅读了一个包含城市及其人口的文件,并尝试使用选择排序按字母顺序对城市进行排序。 问题是由于某种原因它以一种奇怪的方式对其进行排序。 “排序”列表的顺序是“ABDCEFHG ...”我尝试关注它,但我不明白它在哪里搞砸了。这是代码:
//Selection
for (int i = 0; i < cities.size() - 1; i++)
{
int minPos = i;
for (int j = i + 1; j < cities.size(); j++)
{
if (cities.get(j).compareToIgnoreCase(cities.get(minPos)) < -1)
minPos = j;
}
swap(cities, minPos, i);
}
System.out.print("\nSelection: ");
for(int i = 0; i < cities.size(); i++)
System.out.print(cities.get(i) +"|");
private static void swap(ArrayList <String> a, int i, int j)
{
String temp = a.get(i);
a.set(i, a.get(j));
a.set(j, temp);
}
知道有什么问题吗?
谢谢
【问题讨论】:
-
你试过用
... < 0代替... < -1吗? -
你为什么使用
-
是的,这就是问题所在。这是我第一次使用字符串比较,所以我对它有点陌生。谢谢!
-
欢迎您。我建议您阅读 compareTo 方法的 javadoc,以便您完全了解发生了什么。
标签: java string sorting selection-sort