Java—选择排序

选择排序是一种简单但高效的排序算法。它的基本思想是从未排序的部分中选择最小(或最大)的元素,并将其放置在已排序部分的末尾。

实现步骤

具体实现选择排序的步骤如下:

  1. 遍历数组:从数组的第一个元素开始,依次遍历到倒数第二个元素。假设数组长度为n,则需要进行n-1次遍历。
  2. 查找最小元素:在当前未排序部分中,通过比较找到最小的元素。
  3. 交换元素:将最小元素与当前位置的元素交换位置,将最小元素放到已排序部分的末尾。
  4. 继续循环:重复执行上述步骤,直到所有元素都被排序完成。

选择排序的关键点在于每次遍历时,都会找到当前未排序部分中的最小元素,并将其放置在已排序部分的末尾。这样,在每一次遍历后,已排序部分都会增加一个元素,未排序部分减少一个元素,直到最后所有的元素都被排序完成。

选择排序的时间复杂度为O(n^2),其中n是数组的长度。尽管在大规模数据排序时性能相对较差,但对于小规模或部分有序的数组,选择排序是一种简单有效的排序算法。

代码实现

下面是选择排序的示例代码(使用Java语言实现):

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;
                }
            }
            
            if(minIndex != i){
                // 将最小元素和当前位置交换
                int temp = arr[minIndex];
                arr[minIndex] = arr[i];
                arr[i] = temp;
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {64, 25, 12, 22, 11};

        System.out.println("原始数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }

        selectionSort(arr);

        System.out.println("\n排序后的数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

测试结果

相关推荐
WolfGang00732110 分钟前
代码随想录算法训练营 Day32 | 动态规划 part05
算法·动态规划
碧海银沙音频科技研究院35 分钟前
1-1杰理蓝牙SOC的UI配置开发方法
人工智能·深度学习·算法
啊我不会诶1 小时前
2024CCPC长春邀请赛
算法
珂朵莉MM1 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--启发式算法+操作因子设计
人工智能·算法
CS创新实验室2 小时前
CS实验室行业报告:AI算法工程师就业分析报告
人工智能·算法
XiYang-DING3 小时前
【LeetCode】Hash | 136.只出现一次的数字
算法·leetcode·哈希算法
wayz113 小时前
Day 3:逻辑回归与分类预测
算法·分类·逻辑回归
tankeven3 小时前
HJ176 【模板】滑动窗口
c++·算法
网域小星球4 小时前
C 语言从 0 入门(十二)|指针与数组:数组名本质、指针遍历数组
c语言·算法·指针·数组·指针遍历数组
Tairitsu_H4 小时前
C语言:排序(一)
c语言·数据结构·排序