gpt4 book ai didi

java - 在 Java 中使用排序算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:56 25 4
gpt4 key购买 nike

我试图根据我们的编程讲座使用排序算法。也许我只是错过了一些东西。

如果有人可以帮助我或者可以就我犯的任何错误给我提示,我将不胜感激。

这是我当前的代码:

package Sortieralgorithmus;

public class sort {

public static int[] straightSelection(int[] numbers) {

for (int i = 0; i < numbers.length; i++) {
int smallestIndex = i;

for (int j = i + 1; j < numbers.length; j++) {
if (numbers[i] < numbers[smallestIndex]) {
smallestIndex = j;
}
}
swap(j, i, numbers);


}

return numbers;
}
}

最佳答案

您正在进行就地选择排序。改变

if (numbers[i] < numbers[smallestIndex]) 

if (numbers[j] < numbers[smallestIndex]) 

也改变

(int i = 0; i < numbers.length; i++)

(int i = 0; i < numbers.length()-1; i++)

此外,因为 i 和 j 是在您的 for 条件中声明的,所以它们只能在 for 循环的范围内访问。相反,在循环之外声明它们。

最后,最好在交换它们之前检查 if(smallestIndex != i)

这是您的工作代码,假设您的交换功能正常工作。

package Sortieralgorithmus;

public class sort {

public static int[] straightSelection(int[] numbers) {
int i, j; // declare them here
int smallestIndex; //declare it here as well

for (i = 0; i < numbers.length-1; i++) {
smallestIndex = i;

for (j = i + 1; j < numbers.length; j++) {
if (numbers[j] < numbers[smallestIndex]) {
smallestIndex = j;
}
}
if(smallestIndex != i){
swap(smallestIndex, i, numbers);
}

}

return numbers;
}
}

请引用以下内容:http://en.wikipedia.org/wiki/Selection_sort

关于java - 在 Java 中使用排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27758338/

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