gpt4 book ai didi

java - 在此选择排序代码中,我从 {8,3,5,9,2} 得到一个数组答案 {2,3,3,5}

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

我不明白问题出在哪里,我追踪了它并得到了正确的排序,或者如果与值保持一致有问题,有人可以告诉我确切的位置,引用我的代码试验为什么它会导致这个答案。

package sorting;
public class soring {
public static void selectionsort(int [] a ) {
for (int i = 0; i < a.length - 1; i++) {
int minindex = i;
int min = a[minindex];
for(int j=i+1; j<a.length; j++) {
if(min>a[j])
min = a[j];
minindex = j;
}
a[minindex]=a[i];
a[i]=min;
}
}

public static void display (int []a) {
for (int i =0 ; i<a.length-1 ;i++) {
System.out.println(a[i]);
}
}

public static void main(String[] args) {
int [] a = {8,3,5,9,2};
soring.selectionsort(a);
soring.display(a);
}
}

最佳答案

第一个问题:

for (int i =0 ; i<a.length-1 ;i++) {
System.out.println(a[i]);
}

在您的 display() 中方法,您将循环直到小于长度减一,这将不会显示最后一个值。将其更改为 i<a.length

再次在你的selectionsort()中循环的方法,这样最后一个元素就不会被触及。其次,您的 if 之一缺少括号。声明。这使得行 minindex = j;不在 if 内 block ,因此总是被执行。变化:

if(min>a[j]) 
min = a[j];
minindex = j ;

致:

if(min>a[j]) {
min = a[j];
minindex = j ;
}

关于java - 在此选择排序代码中,我从 {8,3,5,9,2} 得到一个数组答案 {2,3,3,5},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52598646/

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