八大排序算法~简单选择排序【记录下标k变量的作用】

时间:2023-12-20 16:40:57

八大排序算法~简单选择排序【记录下标k变量的作用】

1,思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它

2,优化:通过记录下标进行优化,减少交换的次数

//简单选择排序思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它
public static void main(String[] args) {
int[] arr = {1, 4, 0, 6, 2, 7};
// for (int i = 0; i < arr.length -1; i++){
// for(int j = i + 1; j <= arr.length - 1; j++){
// if(arr[i] > arr[j]){
// int temp = arr[i];
// arr[i] = arr[j];
// arr[j] = temp;
// }
// }
// }
//优化一下,通过具有标记作用的下标变量k(标记出最小元素),去标记所有元素比较完的最终结果后,
// 然后在擂台上的元素,再跟有标记记号的元素进行交换
for (int i = 0; i < arr.length -1; i++){
int k = i;
for(int j = i + 1; j <= arr.length - 1; j++){
if(arr[k] > arr[j]){
k = j;
}
}
if(k != i){ //最终有标记记号的元素不是它本身
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
System.out.println("排序后结果:");
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
}