【发布时间】:2019-12-21 00:23:31
【问题描述】:
我正在研究排序算法,包括选择排序,所以我决定写一个方法,它工作正常,但是当我检查这本书时,它有 2 个变量,所以我检查了它,发现它使用一个变量来存储当前索引和另一个作为临时交换
而我的只有临时变量,它也将索引中的初始 值 存储为最低值,然后将其与数组中的其他值进行比较,如果找到更大的值则交换。
这是我的代码:
public static void selectionSort(int[] arr){
int lowest;
for(int i = 0; i < arr.length - 1; i++){
lowest = arr[i];
for(int j = i+1; j<arr.length; j++){
if(arr[j]<lowest){
lowest = arr[j];
arr[j] = arr[i];
arr[i] = lowest;
}
}
}
}
这是这本书的
public static void selectionSort(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[i];
list[i] = list[min];
list[min] = temp;
}
}
所以我在网上看了看,所有的都和书上的一样,所以我的代码是坏的还是慢的,或者它不被认为是选择排序?
抱歉有任何英文错误:P
【问题讨论】:
-
请记住,当人们编写排序时,他们通常不知道被排序的事物的类型,只是知道它有顺序并且可以进行比较。
-
对于此类问题,请前往software engineering
标签: java selection-sort