Java数据结构与算法:排序算法之选择排序

发布时间:2024年01月18日

Java数据结构与算法:排序算法之选择排序

大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入探讨Java中另一种重要的排序算法——选择排序。这个简单而优雅的算法有着独特的魅力,让我们一同揭晓它的奇妙之处。

选择排序简介

选择排序是一种基础的比较排序算法,其核心思想是通过多次遍历待排序的元素,每次找到最小(或最大)的元素,放到已排序的序列的末尾(或开头)。尽管选择排序不如一些高级排序算法在性能上优越,但它的思想清晰、实现简单,是学习排序算法的重要一步。

选择排序的基本步骤

  1. 初始状态: 将整个待排序的序列分为两部分,已排序部分和未排序部分。初始时已排序部分为空,未排序部分包含所有元素。

  2. 选择最小元素: 在未排序部分找到最小的元素,将其与未排序部分的第一个元素交换位置。

  3. 扩大已排序部分: 将刚刚找到的最小元素视为已排序部分的一部分,未排序部分减少一个元素。

  4. 重复步骤2和3: 重复以上步骤,直到未排序部分为空,排序完成。

选择排序Java实现

下面是一个简单的Java代码示例,演示了如何使用选择排序对一个整型数组进行升序排序:

public class SelectionSort {
    public static void main(String[] args) {
        int[] array = {64, 34, 25, 12, 22, 11, 90};
        
        // 打印排序前的数组
        System.out.println("排序前的数组:" + Arrays.toString(array));

        // 执行选择排序
        selectionSort(array);

        // 打印排序后的数组
        System.out.println("排序后的数组:" + Arrays.toString(array));
    }

    // 选择排序算法实现
    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;
        }
    }
}

选择排序的时间复杂度

选择排序的平均时间复杂度同样为O(n^2),效率相对较低。然而,由于其简单的实现方式和思想清晰的算法步骤,选择排序仍然是一个值得学习的排序算法。

通过本文,相信你对选择排序有了更全面的了解。在后续的系列中,我们将继续深入研究Java中更多的排序算法,为你呈现更多精彩内容。敬请期待!

文章来源:https://blog.csdn.net/weixin_44627014/article/details/135630588
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。