gpt4 book ai didi

java - 选择排序 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:23 26 4
gpt4 key购买 nike

 public class Array {
public static void sort(int[] list) {
int min;
int temp;

for(int i = 0; i < list.length - 1; i++) {
min = i;
for(int j = i + 1; j < list.length; j++) {
if(list[j] < list[min]){
min = j;
}
}
temp = list[min];
list[min] = list[i];
list[i] = temp;

}

}
public static void main(String[] args) {
int a[] = {2,1,3};
sort(a);
for(int i = 0; i < a.length; i++) {
System.out.println(a[i]);

}
}
}

我理解这个程序中的所有内容,直到我明白:

        temp = list[min]; 
list[min] = list[i];
list[i] = temp;

有人能用简单的术语解释一下吗?换句话说,上面的目的是什么?

最佳答案

让我们分解一下:

for(int i = 0; i < list.length - 1; i++) {
min = i;
for(int j = i + 1; j < list.length; j++) {
if(list[j] < list[min]){
min = j;
}
}
temp = list[min];
list[min] = list[i];
list[i] = temp;

}

第一个使用变量 i 的循环在第一个位置获取元素。内部循环,使用变量 j接受第二个元素。

在if条件if(list[j] < list[min])您正在比较第一个元素和第二个元素。如果第二个元素小于第一个元素,在代码中min = j您取第二个元素并将其指定为最小值。

当您退出第二个循环时,您的 min 是列表中具有最低值的元素的位置。然后你在代码中

temp = list[min]; 
list[min] = list[i];
list[i] = temp;

您将列表中的第一个元素替换为您拥有的最低元素。现在列表中的第一个元素是列表的最低值。一旦你有了它,你再次进入第一个循环,这次,而不是第一个元素,你的 i是第二个元素,你的 j是你的第三个元素。

这一直持续到您遍历列表的所有元素为止。

关于java - 选择排序 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501347/

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