gpt4 book ai didi

java - 我的插入排序程序有什么问题以及如何修复它?

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:28 27 4
gpt4 key购买 nike

我已经为这个问题绞尽脑汁有一段时间了,试图制定一个通用的插入排序算法。但是,调试失败了,所以我问更有经验的人,我的代码有什么问题?贾里德.

public static<E extends Comparable<? super E>> void sort( E[] a, int i, int j ) {
int f;
int x;
for(x = i+1; x < j; ++x) {
E temp = a[x];
for( f = x ; f >= i && temp.compareTo(a[j]) > 0; --f) {
a[f] = a[f-1];
}
a[f] = temp;
}
}

最佳答案

在内部 for 循环中,您将当前元素 tempa[j] 进行比较,您应该将其与前一个元素 a[f-1] 进行比较改变这个

for( f = x ;  f >= i && temp.compareTo(a[j]) > 0; --f)

for( f = x ;  f >= i && temp.compareTo(a[f-1]) > 0; --f)

此外,如果 i 为 0 并且循环条件为 true, a[f]=a[f-1] 将导致 ArrayIndexOutOfBoundsException,因此使用 f>i 而不是 f>=i

关于java - 我的插入排序程序有什么问题以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159633/

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