【面试干货】选择排序
- 1、实现思想
- 2、代码实现
💖The Begin💖点点关注,收藏不迷路💖
|
1、实现思想
选择排序的实现思想是每次从未排序的部分中选择最小的元素,然后将其放到已排序部分的末尾。
具体步骤如下:
- 从未排序序列中找到最小元素的索引。
- 将最小元素与未排序序列的起始元素交换位置,即将最小元素放到已排序序列的末尾。
- 重复以上步骤,直到所有元素均排序完毕。
选择排序的时间复杂度为O(n^2),其中n为数组的长度。虽然选择排序的时间复杂度较高,但是它是一种简单直观的排序算法,适用于小规模数据或者对稳定性不敏感的场景。
2、代码实现
package csdn;
import java.util.Scanner;
public class SelectionSort {
public static void selectSort(int[] numbers) {
int size = numbers.length, temp; // 声明变量size为数组长度,temp用于交换元素
for (int i = 0; i < size; i++) { // 外层循环,遍历数组
int k = i; // 记录最小元素的索引
for (int j = size - 1; j > i; j--) { // 内层循环,找到未排序部分的最小元素
if (numbers[j] < numbers[k]) k = j; // 更新最小元素的索引
}
temp = numbers[i]; // 交换元素
numbers[i] = numbers[k];
numbers[k] = temp;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象,用于读取输入
System.out.print("请输入待排序的数组元素个数: ");
int n = scanner.nextInt(); // 读取数组元素个数
int[] arr = new int[n]; // 创建数组
System.out.println("请输入待排序的数组元素:");
for (int i = 0; i < n; i++) { // 循环读取数组元素
arr[i] = scanner.nextInt(); // 读取数组元素
}
selectSort(arr); // 调用选择排序方法
System.out.println("排序结果:");
for (int num : arr) { // 遍历排序后的数组并输出
System.out.print(num + " ");
}
}
}
💖The End💖点点关注,收藏不迷路💖
|