📅  最后修改于: 2023-12-03 15:27:12.328000             🧑  作者: Mango
选择排序是一种简单但很慢的排序算法。它的时间复杂度为O(n2),但在小数据集上运行速度比较快。选择排序每次选出最小的元素,放到已排序部分的最后。本文将介绍如何使用Java语言实现选择排序算法。
public class SelectionSort {
public static void sort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
public static void main(String[] args) {
int[] arr = {4, 2, 7, 1, 3, 5, 9, 8, 6};
System.out.println("Before sorting:");
for (int num : arr) {
System.out.print(num + " ");
}
sort(arr);
System.out.println("\nAfter sorting:");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
选择排序使用两个循环来实现。外循环用于表示已排序部分的下标,内循环用于在未排序部分中查找最小元素。在内循环中,如果找到了比当前最小元素更小的元素,则将最小元素下标更新为该元素的下标。在查找完毕后,将找到的最小元素与已排序部分的最后一个元素交换。这样就可以将最小的元素放到正确的位置。
在本程序中,我们通过main方法来演示排序的过程。首先打印出排序前的数组,在排序后又打印出排序后的数组。
程序运行的结果如下:
Before sorting:
4 2 7 1 3 5 9 8 6
After sorting:
1 2 3 4 5 6 7 8 9
这说明选择排序算法已经成功地将输入数组按照从小到大的顺序进行排序。
本文介绍了如何使用Java语言实现选择排序算法。选择排序虽然效率低下,但作为一种基础排序算法,它很适合用于小数据集上。在实际编程中,我们更多地使用高效的排序算法,比如快速排序、归并排序等。