漫画:最最最最最简单的选择排序

简介: 漫画:最最最最最简单的选择排序

微信图片_20220217184921.jpg

public static int[] selectionSort(int[] array){
    if (array.length == 0) return array;
    for(int i =0;i<array.length;i++){
         int min = i;
         int temp;
         for(int j = i;j<array.length;j++){
             //内循环
             //寻找最小值
             if(array[j] <array[min]){
                 min = j;
             }
         }
         //最小值和i进行交换
         temp = array[min];
         array[min] = array[i];
         array[i] = temp;
    }
    return array;
}

微信图片_20220217185414.jpg

首先,我还是给你看一张选择排序的流程图吧。

微信图片_20220217185608.gif

其实整体的思路,小k已经说得差不多了。我给大家再整理一下步骤


  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
  2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
  3. 重复第二步,直到所有元素均排序完毕。



当我们用到它的时候,数据规模越小越好,不会占用额外的内存空间并且运行时间与输入无关。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。


选择排序的交换总次数是N,因为交换元素的代码是放在内循环之外的,所以算法的时间效率取决于比较的次数

微信图片_20220217185723.jpg微信图片_20220217185727.jpg


文终


相关文章
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1237 5
|
10天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1217 87
|
11天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1798 13
|
20天前
|
人工智能 运维 安全
|
3天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
235 127
|
4天前
|
前端开发
Promise的then方法返回的新Promise对象有什么特点?
Promise的then方法返回的新Promise对象有什么特点?
177 2