选择排序是一种简单直观的排序算法,其基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,将其与待排序的数据序列的最前面(或最后面)的元素进行交换,然后缩小待排序数据序列的范围,直到全部待排序的数据元素都排好序为止。
所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。
用java实现选择排序:
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;
}
}
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
的方法,它接受一个整数数组作为参数。该方法使用两个嵌套的for循环来实现选择排序算法。外层循环负责记录已排序元素的范围,内层循环负责在已排序元素之后的数据元素中找到最小(或最大)的元素。然后,我们将找到的元素与已排序元素范围的最前面(或最后面)的元素进行交换,从而实现排序。最后,我们在main
方法中调用selectionSort
方法对一个整数数组进行排序,并打印排序后的结果。