选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每一轮从未排序的元素中选择最小(或最大)的元素,将其放置在已排序部分的末尾。具体步骤如下:
下面是使用Java实现的选择排序算法:
public 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; } }
在上述代码中,arr是待排序的数组。外层循环用于选择已排序部分的末尾,从第一个元素开始,到倒数第二个元素结束。内层循环用于在未排序部分中寻找最小元素的下标。每一轮选择结束后,将找到的最小元素与已排序部分的末尾元素进行交换,将该元素纳入已排序部分。
arr
选择排序的时间复杂度始终为O(n^2),无论数组的初始状态如何。尽管选择排序的时间复杂度较高,但在某些情况下仍可用于简单排序任务。然而,对于大规模的乱序数组,更高效的排序算法如快速排序和归并排序通常更为合适。
原文链接:codingdict.net