gpt4 book ai didi

java - 如何在Java中正确编写选择排序

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

如果我的问题激怒了任何人,我深表歉意,因为 Stack Overflow 上已经有一些与选择排序相关的问题,但我已经查看了几乎所有问题,但仍然感到困惑。

我只是想以正确的格式编写选择排序。然而,我发现很多人在其中使用了两个 IF 语句,而其他人则没有。

我需要知道的是选择排序是否需要两个 IF 语句,或者我编写的方式是否可以接受?

到目前为止我最终写的是:

public static int[] selectionsort(int[] anArray){
int temp;

for(int i = 0; i < anArray.length; i++){
for(int leastIndex = i + 1; leastIndex < anArray.length; leastIndex++){
if(anArray[i] > anArray[leastIndex]){
temp = anArray[i];
anArray[i] = anArray[leastIndex];
anArray[leastIndex] = temp;
}
}
}
return anArray;
}

程序确实运行了,但我需要确保我正确地编写了选择排序。

最佳答案

你确实在某些方面实现了选择排序,我在你的实现中唯一要改变的是“冒泡”,你冒泡最小的整数而不是仅仅保留它的索引,这导致了一些额外的交换,并导致困惑使用冒泡排序,尽管您的实现也不是冒泡排序。

int[] selectionSort(int[] arr) {
int minIndex;
for (int i=0;i<arr.length;i++) {
minIndex= i;
for (int j=i+1;j<arr.length;j++) {
if (arr[minIndex]>arr[j])
minIndex = j;
}
swap(arr,i,j);
}
}

关于java - 如何在Java中正确编写选择排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461080/

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