- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public class First{
public static void main(String[] args){
int[] arr = new int[]{4, 2, 7, 8};
int[] p = insertionSort(arr);
System.out.println(java.util.Arrays.toString(p));
}
public static int[] insertionSort(int[] arr){
int key;
int i;
for (int j = 1; j < arr.length; j++){
key = arr[j];
i = j - 1;
while( (i > 0) && (arr[i] > key)){
arr[i + 1] = arr[i];
i--;
}
arr[i + 1] = key;
}
return arr;
}
}
我不确定发生了什么,但上面的代码只是打印了原始的未排序数组,而不是已排序的 int 数组。
最佳答案
这个
while ((i > 0) && (arr[i] > key)) {
应该是
while ((i >= 0) && (arr[i] > key)) {
然后我得到
[2, 4, 7, 8]
关于java - 为什么这个 insertionSort 代码没有给出正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680535/
public class First{ public static void main(String[] args){ int[] arr = new int[]{4, 2,
这里制定的算法的复杂度为 O(n^2)(插入排序)。该算法虽然得到一个 NullPointerException,因为 String 数组中有 null 元素。如何让我的算法对包含空元素的数组进行排序
我有一个合并排序需要在特定数字切换到插入排序,这是我的阈值。但我的阈值只能是 1、2 或 3,因为在任何其他情况下,我的合并排序都会变得非常慢。我似乎无法让代码协同工作。 这是我的代码: public
*在这个程序中,我正在读取两个文件,然后删除所有标点符号,然后应用“插入算法”(我在这个程序中创建了一个方法)。每次我调用这个程序时,包括“InsertionSort”一个空的输出文件正在生成并且排除
对于两种不同的排序,我有两个实现,InsertionSort 和 ShellSort。 它们如下: 插入排序: for (int pos = 0; pos 0; secondMarker--) {
我是 Swift 的新手,我想知道我应该如何修改包含在我的 Int[] 中的 Int?我做的就像我在 Java 中做的那样,但显然,它不起作用:我得到一个 Cannot assign to immut
美好的一天 SO 社区, 我是一名 CS 学生,目前正在进行结合 MergeSort 和 InsertionSort 的实验。据了解,对于某个阈值 S,InsertionSort 将比 MergeSo
我决定开始学习一种编程语言来重写我的程序。第一个是大学二年级的一个简单程序。但是……看看测试!为什么简单的插入排序这么慢? 在 C 上测试: ARRAY SIZE: 100000 = 0 && a[j
最近,我着迷于 ShellSort 算法思想,简单地在小子列表中使用 InsertionSort,然后最后对整个列表使用 InsertionSort。 所以,我想为什么不将 MergeSort 与 I
我是一名优秀的程序员,十分优秀!