【发布时间】:2018-08-08 11:28:39
【问题描述】:
您好,我已经在 Java 中进行了插入排序,但我不知道我是否正确实现了这一点。有人可以合作吗? 我认为插入排序需要在 for 循环中包含一个 while 循环 因此我实现了这个,但我不知道它是否正确。
// ------------------------------------------------------------
import java.lang.Math; // headers MUST be above the first class
import java.util.Arrays;
// one class needs to have a main() method
public class Insertionsort {
// arguments are passed using the text field below this editor
public static void main(String[] args) {
// --------------------------------------------- insertion sort
int mainInsersionSortArray[] = {64, 25, 12, 22, 11, 10, 9, 8, 7, 6, 5, 4, 3};
int insertionSortTemporaryValue = 0;
System.out.println("Array before insertion sort");
for (int z = 0; z < mainInsersionSortArray.length; z++) {
System.out.println(mainInsersionSortArray[z]);
}
int x1;
for (int k0 = 1; k0 < mainInsersionSortArray.length; k0++) {
x1 = k0;
while (x1 != 0) {
if (mainInsersionSortArray[x1] < mainInsersionSortArray[x1 - 1]) {
insertionSortTemporaryValue = mainInsersionSortArray[x1];
mainInsersionSortArray[x1] = mainInsersionSortArray[x1 - 1];
mainInsersionSortArray[x1 - 1] = insertionSortTemporaryValue;
}
x1 = x1 - 1;
}
}
System.out.println("\n" + "Array after insertion sort");
for (int z1 = 0; z1 < mainInsersionSortArray.length; z1++) { // integerArray.lenght - looping through the whole array starting from i[0]
System.out.println(mainInsersionSortArray[z1]);
}
}
}
在java中实现的插入排序。
【问题讨论】:
-
首先,请格式化你的代码,那你为什么要问呢?它是否有效?如果没有,请提供示例输入预期输出以及实际输出
-
恐怕你需要自己测试一下。 Stack Overflow 适用于具有足够详细信息以识别答案的特定问题。调试和测试不在 Stack Overflow 的范围内。
-
另外,它更可能是
Bubblesort而不是Insertionsort算法 -
嗨,代码正在运行,并对数组进行排序,但是我不知道我是否进行了插入排序或其他排序(例如冒泡排序/选择排序)。 ?
-
@ekcs 您应该能够将您的代码与其他插入排序代码或您可以在线找到的插入排序可视化进行比较。如果您从逻辑上理解插入排序应该做什么,您应该能够判断这是否是您的代码正在做的事情(如果您正在编写您不理解的代码,您会遇到更大的问题)。
标签: java algorithm data-structures insertion-sort