首页 > 其他分享 >简单选择排序

简单选择排序

时间:2023-07-03 21:35:13浏览次数:29  
标签:minIndex arr int 元素 选择 简单 排序 public

简单选择排序是一种基本的排序算法,它的思想是每次从待排序的序列中选择一个最小(或最大)的元素,放到已排序的序列末尾,直到所有元素都排好序。它的时间复杂度是O(n^2),空间复杂度是O(1)。

下面是简单选择排序的JAVA实现:

public class SelectionSort {
    public static void sort(int[] arr) {
        // 遍历数组,每次找出最小的元素
        for (int i = 0; i < arr.length - 1; i++) {
            // 记录最小元素的索引
            int minIndex = i;
            // 从i+1开始,比较剩余的元素
            for (int j = i + 1; j < arr.length; j++) {
                // 如果找到更小的元素,更新最小索引
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            // 如果最小索引不是i,交换两个元素
            if (minIndex != i) {
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }
    }

    public static void main(String[] args) {
        // 测试数组
        int[] arr = {5, 3, 7, 9, 1, 4, 6, 8, 2};
        // 调用排序方法
        sort(arr);
        // 打印排序后的结果
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

标签:minIndex,arr,int,元素,选择,简单,排序,public
From: https://www.cnblogs.com/shoshana-kong/p/17524132.html

相关文章

  • 简单插入排序
    简单插入排序是一种基本的排序算法,它的思想是将待排序的元素逐个插入到已经有序的数组中,从而得到一个新的有序数组。它的时间复杂度是O(n^2),空间复杂度是O(1),是一种稳定的排序算法。简单插入排序的过程如下:从第二个元素开始,依次取出每个元素,与前面已经有序的元素进行比较。如......
  • 计数排序
    计数排序是一种非比较的排序算法,它的时间复杂度是O(n+k),其中n是待排序数组的长度,k是数组中的最大值。计数排序的基本思想是,对于每个输入元素x,确定小于等于x的元素个数,然后把x放在输出数组中对应的位置上。为了实现这个过程,需要一个额外的数组C,用来存储每个元素出现的次数,以及一个......
  • 桶排序算法及其Java实现
    桶排序是一种排序算法,它的原理是将数组分到有限数量的桶里,每个桶再个别排序,最后依次把各个桶中的记录列出来。桶排序的效率取决于映射函数的选择和桶的数量。桶排序适用于数据分布比较均匀,或者比较侧重于区间数量的情况。下面是我为你写的博客正文,希望对你有帮助:桶排序算法及其J......
  • Jmeter学习之四_kingbaseV8R6数据库的简单验证
    Jmeter学习之四_kingbaseV8R6数据库的简单验证背景周一没去报道,因为我忘记体检了...继续在家进行学习提高自己.jmeter周末时开始看的.今天想着继续研究一下对数据库的处理突然发现人大金仓的官方csdn有一个文档,所以想着偷师,并且总结学习一下.感谢官网的资料.https......
  • 跨境电商选择动态IP还是静态IP?
    随着跨境电商的兴起,选择适合的IP类型对于企业的成功至关重要。在跨境电商中,常见的选择是动态IP和静态IP。下面将就这两种IP类型进行比较,帮助您做出更明智的选择。1.动态IP动态IP是指在一定时间范围内会发生变化的IP地址。跨境电商中使用动态IP具有以下优势:隐私保护:动态IP的变化使得......
  • 简单的python面向对象案例——跑步或吃饭
    个人学习,仅供参考要求对象:小明a.属性:姓名,体重b.方法:跑步,吃东西(每次跑步会减掉0.1kg,每次吃东西增加0.2kg)输入名字以初始体重选择跑步或吃东西,输入次数打印当前体重代码如下:#定义一个类classPerson(object):#公共属性def__init__......
  • 手游服务器选择标准 选择手游服务器要考虑哪些问题
    手游服务器通常分为物理服务器、云主机两种类型,大家可以选择购买或者是租用。下面驰网多多就给大家介绍手游服务器选择标准,选择手游服务器要考虑哪些问题?选择手游服务器要考虑哪些问题1、根据企业的需求选择合适的线路国内常用的线路是电信线路和网通线路,其中河南以及河南以......
  • 记录一下Oracle排序 将空值排在最后面
    select*fromtableorderbyxxx(字段)desc 今天在写Oracle排序的时候突然发现,Oracle默认将null值放最上面使用nullsfirst或者nullslast语法Nullsfirst和nullslast是OracleOrderby支持的语法如果Orderby中指定了表达式Nullsfirst则表示null值的记录将排在最前( ......
  • a-range-picker 无法选择,选择后无反应,且方法失效
    在开发时发现了一个问题,本地研发是没有任何问题的,当打包到测试环境时,日期选择器选择日期没有一点反应,也不回显数据,也不触发方法。如下图: 我在选中4的时候,弹出层关闭,然后上面选择框为空不回显数据,加了change方法后,也不触发方法,非常奇怪。后来发现,在我项目区分版本......
  • BOSHIDA DC电源模块该如何选择
    BOSHIDADC电源模块该如何选择 选择DC电源模块时应考虑以下几个方面:1.输出电压和电流:根据需要确定所需的输出电压和电流,以确保满足被供电设备的电力需求。2.负载特性:确定被供电设备的负载特性,例如是否有起始电流等,这些特性将影响到所选的DC电源模块的最小电流和起始能......