选择排序(Selection Sort)是一种简单的排序算法,其基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完,以下是使用Java实现选择排序的技术教程。
一、选择排序的基本原理
选择排序的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完,具体步骤如下:
1. 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3. 重复第二步,直到所有元素均排序完毕。
二、选择排序的Java实现
下面我们来看一下如何使用Java实现选择排序,我们需要创建一个Java类,并在其中定义一个选择排序的方法,这个方法接收一个整型数组作为参数,并对其进行选择排序。
public class SelectionSort { public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; selectionSort(arr); System.out.println("Sorted array:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } 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; } } if (minIndex != i) { int temp = arr[minIndex]; arr[minIndex] = arr[i]; arr[i] = temp; } } } }
在上面的代码中,我们首先定义了一个名为`selectionSort`的方法,该方法接收一个整型数组作为参数,在方法内部,我们使用两层循环来实现选择排序,外层循环控制遍历次数,内层循环用于找到未排序部分的最小值,当找到最小值后,我们将其与当前位置的值进行交换,经过多次循环后,整个数组就被排序完成了。
三、选择排序的时间复杂度和空间复杂度分析
选择排序的时间复杂度为O(n^2),其中n为数组的长度,这是因为在最坏的情况下,我们需要对数组中的每个元素进行一次比较操作,选择排序的空间复杂度为O(1),因为我们只需要常数级别的额外空间来存储临时变量。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/37715.html