gpt4 book ai didi

java - 这些代码在插入排序方面有何比较?

转载 作者:行者123 更新时间:2023-12-02 10:48:06 25 4
gpt4 key购买 nike

我尝试编写一个插入排序,但在互联网上查找时,我无法理解代码。

这就是我所做的:

public class InsertionSort {
public static void sort (int array[]) {
for (int i = 1; i < array.length; i++) {
int j = i - 1;
while (j >= 0 && array [j] > array [j + 1]) {
int temp = array [j + 1];
array [j + 1] = array [j];
array [j] = temp;
j -= 1;
}
}
}
}

在我的主要方法中,我写了这样的内容:

public class TestAlgos {
public static void main (String args []) {
int array[] = {2,5,3,6,8,0,4,2,4,6,1,4,6,9,3};

InsertionSort.sort(array);
System.out.println(array);
}
}

但是运行时,我得到了这个输出(顺便说一下,我使用了 eclipse):

[I@ed17bee

于是我在网上搜索解决方案,并在一个网站上找到了这段代码。

while(i > 0 && Array[i] > key) {
Array[i + 1] = Array[i];
i = i - 1;
}
Array[i + 1] = key;

不知道是不是我的代码有问题。请解释一下。

另外,我的第二个问题是为什么输出显示的是数字字符串而不是错误。

最佳答案

您的代码没有任何问题,因为它是有效的插入排序实现。您引用的第二个代码仍然是一个更好的方法,因为它减少了插入。

主要区别如下:您的算法会切换值,直到当前索引的值不再有可用/所需的操作。

引用的算法会向下移动值的索引,直到不再有可用/需要的操作,然后将存储在 key 变量中的值放置在当前索引下。

关于java - 这些代码在插入排序方面有何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52390219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com