有谁知道这在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]);
}
}
答案 0 :(得分:1)
这看起来像Bubble sort实施:
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;
}
}
}
答案 1 :(得分:1)
冒泡排序。一个词典编纂的泡沫排序,具体而言。
答案 2 :(得分:0)
for (int i = 0;i < arr.length;i++)
{//outer loop
tmp = arr[i];
for (int j = 0;j < arr.length;j++)
{//inner loop
if (i == j) continue;
int x = tmp.compareTo(arr[j]);
if (x < 0)
{
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
正如您可以在内循环中看到的那样,它与附近的节点进行比较并仅移动一步 每次它将从外环索引开始,并再次检索其余数据 似乎它是一个冒泡的类型,但它是一个奇怪的工具。