Java 使用递归的快速排序中的交换/数据移动次数
我似乎不知道如何在这段代码中找到数据移动/交换的数量。在这个递归代码中还会有交换/数据移动吗?0_o和 它的内存空间要求是什么Java 使用递归的快速排序中的交换/数据移动次数,java,Java,我似乎不知道如何在这段代码中找到数据移动/交换的数量。在这个递归代码中还会有交换/数据移动吗?0_o和 它的内存空间要求是什么 package skirmish; public class QuickSort { public static int countComparisons = 0; public static int countSwappings = 0; public LinkedList qSort(LinkedL
package skirmish;
public class QuickSort
{
public static int countComparisons = 0;
public static int countSwappings = 0;
public LinkedList qSort(LinkedList l)
{
if(l.count() <= 1)
return l;
int p = l.peekStart();
l.removeFromStart();
LinkedList s = new LinkedList();
LinkedList g = new LinkedList();
while(!l.isEmpty())
{
countComparisons++;
if(l.peekStart() < p)
s.addAtEnd(l.peekStart());
else
g.addAtEnd(l.peekStart());
l.removeFromStart();
}
s = qSort(s);
g = qSort(g);
s.addAtEnd(p);
countSwappings++;
while(!g.isEmpty())
{
s.addAtEnd(g.peekStart());
g.removeFromStart();
countSwappings++;
}
return s;
}
}
package冲突;
公共类快速排序
{
公共静态整数比较=0;
公共静态整数计数交换=0;
公共链接列表qSort(链接列表l)
{
if(l.count())不使用字母作为变量名。另外,我也不太明白您要计算什么。对不起,命名约定。我要计算交换或数据移动的数量,就像我们在任何其他排序算法中比较的交换一样