java编写一个程序,实现选择排序法,原理是:首先找到数组中的最值,将最小值(最大值)的下标与第一个元素的下标交换,再在剩下的元素中找最小值(最大值)的下标与第二个元素的下标交换,以此类推,完成所有元素的排序。
时间: 2024-09-12 17:06:38 浏览: 42
选择排序是一种简单直观的排序算法。它的工作原理如下:
1. 从数组的第一个元素开始,通过遍历整个数组来找到最小(或最大)元素的下标。
2. 将找到的最小(或最大)元素与数组的第一个元素交换位置。
3. 接着从第二个元素开始,继续遍历剩下的元素,再次找到最小(或最大)元素的下标。
4. 将这个最小(或最大)元素与数组的第二个元素交换位置。
5. 重复这个过程,每次都将剩余未排序数组中的最小(或最大)元素与当前位置的元素交换,直到整个数组有序。
下面是使用Java编写的一个选择排序的示例代码:
```java
public class SelectionSort {
public static void selectionSort(int[] arr) {
if (arr == null || arr.length <= 1) {
return;
}
for (int i = 0; i < arr.length - 1; i++) {
// 假设当前遍历到的位置是最小值的下标
int minIndex = i;
// 通过遍历,找出剩余数组中的最小值的下标
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将最小值的下标对应的元素与当前位置的元素交换
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
public static void main(String[] args) {
int[] array = {64, 25, 12, 22, 11};
selectionSort(array);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
```
当你运行上述代码时,它将输出数组经过选择排序后的结果。
阅读全文