选择排序(Java、Python)

目录

前言

一、选择排序是什么?

二、函数

 1.Java版 

 2.Python版

总结


前言

随着计算机的不断发展,算法这门技术也越来越重要,很多人都开启了算法学习,本文就介绍了选择排序。我也是个初学者,在解决问题之后,觉得还是把这些坑都写清楚,方便其他和我一样的初学者。


一、选择排序是什么?

①该算法的时间复杂度为O(n²)

②该算法可将无序数组转换为有序数组

二、函数

 1.Java版 

代码如下:

 public static int[] selectionSort(int[] arr){
        //最小值,初始化时为0下标
        int temp;
        //循环
        for(int i=0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
                //交换
                if(arr[i]>arr[j]){
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        return arr;
    }

测试样例: 

//测试
    public static void main(String[] args) {
        int[] arr=selectionSort(new int[]{5, 3, 6, 2, 10});
        for (int j : arr) {
            System.out.print(j + " ");
        }
    }

结果截图:

 2.Python版

代码如下:

# 获得数组最小值的下标
def findSmallest(arr):
    # 最小值,初始化时为0下标
    smallest = arr[0]
    # 最小元素的索引
    smallest_index = 0
    for i in range(1, len(arr)):
        if arr[i] < smallest:
            smallest = arr[i]
            smallest_index = i
    return smallest_index


# 对数组进行排序
def selectionSort(arr):
    newArr = []
    for i in range(len(arr)):
        # 找出数组的最小值
        smallest = findSmallest(arr)
        # 将元素从旧数组中移除加入新数组
        newArr.append(arr.pop(smallest))
    return newArr

测试样例:

# 测试
print(selectionSort([5, 3, 6, 2, 10]))

 结果截图:


总结

以上就是今天要讲的内容,本文仅仅简单介绍了选择排序的使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值