排序算法-选择排序

选择排序是一种简单直观的排序算法,它的工作原理是通过n-i次关键字的比较来找出最小元素并放到已排序序列的末尾。在最好情况下,即输入数组已排序,选择排序只需o(n)的时间;最坏情况下,即输入数组逆序,其时间复杂度为o(n²)。相比冒泡排序,选择排序减少了不必要的交换操作。以下是选择排序的Java实现代码。
摘要由CSDN通过智能技术生成
简单选择排序(Simple Selection Sort)就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之
 时间复杂度:
     1) 最好情况:本身有序,需要比较n-1次 时间复杂度为o(n)
     2)最坏情况:逆序情况,需要比较(n-1)+(n-2)+...+2+1=n(n-1)/2 时间复杂度为o(n²)
性能上略优于冒泡排序 减少了交换次数

static void selectionSort(int[] array) {
        if (array != null && array.length > 0) {
            int i, j,min;
            for (i = 0; i < array.length; i++) {
                min=i;
                for (j = i + 1; j < array.length; j++) {
                    if (array[min] > array[j]) {
                        min=j;//找出最小记录
                    }
                }
                if(i!=min){//如果最小记录位置有变化,执行交换
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值