我一直在使用递归进行选择排序和冒泡排序。我终于想出了两种方法,它们工作得很好。但是当我对这些进行最后的审视时,他们看起来只是一种方法,即selectionSortRecursive
。你能告诉我的区别(或他们是一样的)?以下两种递归排序方法是否相同?
public static void selectionSortRecursive(Comparable[] list, int n)
{
Comparable temp;
if (n > 1){
for (int i = 0; i < n - 1; i++)
{
if(list[i].compareTo(list[i + 1]) > 0){
temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
selectionSortRecursive(list, n - 1);
}
}
public static void bubbleSortRecursive(Comparable[] list, int n)
{
Comparable tmp;
if (n >1) {
for (int i = 0; i < n - 1; i++)
{
if(list[i+1].compareTo(list[i]) < 0)
{
tmp = list[i];
list[i] = list[i+1];
list[i+1] = tmp;
}
}
bubbleSortRecursive(list, n - 1);
}
}
你为什么不直接写一个主测试并尝试一下呢? – ssantos
我测试了它们。他们都完美地工作。但是现在我不知道他们是不是两种不同的算法? – user2774903
我的问题是他们是两种不同的算法,它们是选择和冒泡排序?或者他们只是一个算法? – user2774903