有谁知道这在Java中是什么样的?我不太确定自己。插入?选择?提前致谢!
public class sorting {
public static void main(String[] args)
{
String[] arr = {"Banana", "Apple", "Orange", "Fruit", "Watermelon", "Hello World"};
String tmp;
for (int i = 0;i < arr.length;i++)
{
tmp = arr[i];
for (int j = 0;j < arr.length;j++)
{
if (i == j) continue;
int x = tmp.compareTo(arr[j]);
if (x < 0)
{
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
for (int i = 0;i < arr.length;i++)
System.out.println(arr[i]);
}
}
这看起来像一个冒泡排序实现:
O(n^2)
尽管冒泡排序一开始是很丑陋的,但我们可以通过正确设置索引并i == j
在此过程中消除这种比较来减少工作量:
for (int i = arr.length; i > 0; i--) {
for (int j = 0; j < i - 1; j++) {
int x = arr[j].compareTo(arr[j + 1]);
if (x > 0) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句