java选择排序
选择排序的思路
- 1.先找到数组中最大或者最小的元素 放到数组的一端
- 2.再剩余的元素中再找到最大的放到 已排序的末尾
- 循环执行 直到结束
图解排序思路过程
代码 ---- 这里采用的是从小到大的排序方法
public class SelectSort {
public static void main(String[] args) {
int[] array = {9,5,2,7};
selectSortMin2Max(array);
selectSortMax2Min(array);
}
static void selectSortMin2Max(int[] array) {
/*
* 选择排序的思路
* 1.先找到数组中最大或者最小的元素 放到数组的一端
* 2.再剩余的元素中再找到最大的放到 已排序的末尾
* 循环执行 直到结束
* */
//方法从小到大排列
for (int i = 0; i < array.length; i++) {
int minIndex = i;// 最小数的索引
for (int j = i + 1; j < array.length; j++) {
if (array[minIndex] > array[j]) { //如果存在比假定的最小数还小的数
minIndex = j; //将该数的索引变为最小数的索引
}
}
//进行数值的交换操作
int temp = array[i];
array[i] = array[minIndex]; //将最小的数排在最前面
array[minIndex] = temp; //将两个数进行交换数值
}
System.out.println(Arrays.toString(array));
}
//见名知意 方法就是从大到小排列
static void selectSortMax2Min(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
int maxIndex = i; //将第一个数作为假定的最大数
for (int j = i + 1; j < array.length; j++) {
if (array[j] > array[maxIndex]) { //如果存在比假定的数还大的数
maxIndex = j; //将该数的索引做为最大数的索引
}
}
//进行数值交换
int temp = array[i];//将前一个数拿出来
array[i] = array[maxIndex]; //将最大值放在最前面的
array[maxIndex] = temp; //将前一个数放在最大值的后面
}
System.out.println(Arrays.toString(array));
}
排序结果
[2, 5, 7, 9]
[9, 7, 5, 2]