Java 插入排序基本操作计数

Java 插入排序基本操作计数,java,insertion-sort,Java,Insertion Sort,我有一个任务,使用算法的实证分析来比较插入排序和合并排序,我使用基本运算计数来衡量效率。 我的问题:对于相同的输入大小,每次操作计数都相同,这正常吗?(知道我正在生成随机值,因此每次运行的值都不同) 这是我的方法(java): 公共静态void insertionSort(int[]随机数组){ int键,j; 对于(int i=1;i=0&&randomArray[j]>键){ 随机数组[j+1]=随机数组[j]; j--; } 随机数组[j+1]=键; } } 其中的基本操作是比较“ran

我有一个任务,使用算法的实证分析来比较插入排序和合并排序,我使用基本运算计数来衡量效率。 我的问题:对于相同的输入大小,每次操作计数都相同,这正常吗?(知道我正在生成随机值,因此每次运行的值都不同)

这是我的方法(java):

公共静态void insertionSort(int[]随机数组){
int键,j;
对于(int i=1;i=0&&randomArray[j]>键){
随机数组[j+1]=随机数组[j];
j--;
}
随机数组[j+1]=键;
}
}

其中的基本操作是比较“randomArray[j]>键”

我认为在这段代码中,您应该只增加计数器

while (j >= 0 && randomArray[j] > key) {
        increaseCounter();
        randomArray[j + 1] = randomArray[j];
        j--;
    }

我们计算效率您需要计算程序在完成之前执行的步骤数,前面的代码只计算它在代码中循环的次数,因为它不计算while 1中的循环,它只计算数组的数量

我认为您也应该在代码中增加计数器

while (j >= 0 && randomArray[j] > key) {
        increaseCounter();
        randomArray[j + 1] = randomArray[j];
        j--;
    }

我们计算效率您需要计算程序在完成之前执行的步骤数,之前的代码只计算代码中循环的次数,因为它不计算while 1中的循环,它只计算数组的数量

欢迎使用堆栈溢出!请参加并访问我们的网站,了解哪些问题适合本网站。如果您的问题能够满足本网站的要求,请这样做。欢迎使用Stack Overflow!请参加并访问我们的网站,了解哪些问题适合本网站。如果您的问题符合本网站的要求,请回答。欢迎访问。我觉得你的答案是正确的,但是如果你解释一下为什么他们应该在while循环中移动
increaseCounter
调用,对OP会更有帮助(键入
的OPs语句,其中基本操作是比较“randomArray[j]>key”
)谢谢你的建议,我认为这是因为当我们计算效率时,你需要计算程序在完成之前执行的步骤数,之前的代码只计算它在代码中循环的次数,因为它不计算while 1中的循环,它只计算数组的数量。你是对的。我的建议是你编辑你的答案以包含这些信息。对于OP和未来的问题搜索者来说,这不仅有助于查看代码和“执行此操作”类型的语句,而且有助于他们查看代码并简要解释为什么代码有助于/解决/解决问题。欢迎访问。我觉得你的答案是正确的,但是如果你解释一下为什么他们应该在while循环中移动
increaseCounter
调用,对OP会更有帮助(键入
的OPs语句,其中基本操作是比较“randomArray[j]>key”
)谢谢你的建议,我认为这是因为当我们计算效率时,你需要计算程序在完成之前执行的步骤数,之前的代码只计算它在代码中循环的次数,因为它不计算while 1中的循环,它只计算数组的数量。你是对的。我的建议是你编辑你的答案以包含这些信息。对于OP和未来的问题搜索者来说,这不仅有助于查看代码和“执行此操作”类型的语句,而且有助于他们查看代码并简要解释为什么代码有助于/工作/解决问题。