选择排序的推理以及写法
- 定义一个数组
- 判断该数组需要进行的对比轮数
- 找出需要寻找下标值次数与轮数之间的关系
- 寻找每轮下标最小值
- 交换元素值
- 循环输入排序后的数组元素
private static void test11() {
int arr[]={3,2,4,5,7,8,9,0 ,1,7};//定义一个数组
//数组需要进行查找的轮数
for (int i = 0; i <arr.length-1 ; i++) {
//定义一个最小下标为0
int min=i;
//查找最小值下标
for (int j = i; j <=arr.length-1 ; j++) {
if(arr[j]<arr[min]){
min=j;
}
}
//交换前后元素的值
int t=arr[i];
arr[i]=arr[min];
arr[min]=t;
}
//循环输出排序后各元素
for (int i = 0; i <=arr.length-1 ; i++) {
System.out.print(arr[i]+" ");
}
}
运行结果如下
需要注意跟冒泡排序不同 选择排序每轮需要确定的是最小数的下标然后依次排序