专栏首页JAVAandPython君漫画:最最最最最简单的选择排序

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

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;
}

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

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

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

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

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

文终


本文分享自微信公众号 - JAVAandPython君(JAVAandPythonJun),作者:JAP君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 漫画:冒泡排序最牛逼的状态!

    除了刚刚小k写的算法,我们还可以做进一步的优化。如果有100个数的数组,仅前面10个无序,后面90个都已排好序且都大于前面10个数字,那么在第一趟遍历后,最后发...

    Python进击者
  • 如何让你写的爬虫速度像坐火箭一样快【并发请求】

    首先,我们需要知道什么是并发,这里的并发指的是“并行发送请求”,意思就是一次性发出多个请求,从而达到节省时间的效果!那么并发和不并发的区别在哪呢?简单来说就是这...

    Python进击者
  • 【Basic algorithm学习笔记】 排序

    原理: 其实原理很简单 大白话来讲 就是 先定义很多 容器 即这里形象的表达 为桶,之后每次输入的数字则为选择哪个桶,将对应的 桶中扔一个标志物表示有这个 桶...

    Python进击者
  • 算法笔记之排序

    最近在看《算法笔记》,如果单从算法来说,这本书真正做到了短小精悍,首先以排序入题,那么我们今天也来说说排序。 排序 将一堆杂乱无章的元素按照某种规则有序排列的过...

    xiangzhihong
  • 排序算法的简单实现(冒泡和快排)

    原始的冒泡排序是稳定排序。由于该排序的每一轮要遍历所以元素,轮转的次数和元素数量相当,所以时间复杂度是 O(N^2)。

    希希里之海
  • 常用排序算法代码兑现

    主要推送关于对算法的思考以及应用的消息。坚信学会如何思考一个算法比单纯地掌握100个知识点重要100倍。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎...

    double
  • 排序算法-冒泡排序

    算法简介 冒泡排序(Bubble Sort)是一种典型的交换排序算法,持续比较相邻元素,大的挪到后面,因此大的会逐步往后挪,故称之为冒泡。 算法描述 比较相邻的...

    武培轩
  • 如何用 Java 实现十大经典排序算法?

    最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序...

    一个优秀的废人
  • 面试常问的十个排序算法都在这里了(含JAVA代码实现)

    ps:上篇的动图数据结构反响不错,这次来个动图排序算法大全。数据结构与算法,齐了。

    用户5224393
  • Java数据结构和算法(三)——冒泡、选择、插入排序算法

      上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。 1、冒泡排序   这个名词...

    IT可乐

扫码关注云+社区

领取腾讯云代金券