选择排序是一种简单直观的排序算法,其基本思想是每次从未排序的序列中找到最小(或最大)的元素,将其放到已排序序列的起始位置,然后从剩余未排序的元素中继续寻找最小(或最大)的元素,依次类推,直到所有元素排序完毕。以下是使用Java实现选择排序的代码示例:
public class SelectionSort {
public static void selectionSort(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;
}
}
// 将找到的最小元素与第i个位置的元素交换
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
public static void main(String[] args) {
int[] arr = {64, 34, 25, 12, 22, 11, 90};
selectionSort(arr);
System.out.println("排序后的数组:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
这段代码定义了一个名为`SelectionSort`的类,其中包含了一个静态方法`selectionSort`来实现选择排序算法。在`main`方法中,我们创建了一个整型数组`arr`,并调用了`selectionSort`方法对其进行排序。最后,我们通过循环打印出排序后的数组。
选择排序的时间复杂度为O(n^2),因此它适用于小规模数据的排序。对于大规模数据的排序,通常会使用更高效的算法,如快速排序、归并排序等