专栏首页编程直播室读书笔记:《算法图解》第二章 选择排序选择排序:#

读书笔记:《算法图解》第二章 选择排序选择排序:#

  • 数组:所谓数组,是无序的元素序列。数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。
  • 链表:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。链表有很多种不同的类型:单向链表,双向链表以及循环链表。

链表擅长插入删除,数组擅长随机访问。

选择排序:#

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 中小学生Python课程第一阶段10课

    孙亖
  • WebGL 动画

    孙亖
  • Ionic 2 问题集Console.log 不输出编译Android报错:compileArmv7DebugJavaWithJavac一些更新命令错误:Error: listen EADDRINUS

    孙亖
  • 数据结构初探

    数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始

    猿_人类
  • 9.4 C语言链表

    1、链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构,是根据需要开辟内存单元。

    C语言入门到精通
  • 《图解算法》第2章 选择排序

    yeedomliu
  • 8.3 链表

    链表中每一个元素称为结点,每一个结点都包含两部分:一是用户需要用的实际参数,二是下一个结点的地址。

    C语言入门到精通
  • JDK1.9-数据结构

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • Vector、ArrayList、LinkedList有何区别?

    Vector、ArrayList、LinkedList均为线型的数据结构,但是从实现方式与应用场景中又存在差别。

    居士
  • 前端课程——定位继承与层叠

    z- index属性指定了一个具有定位属性的元素及其子代元素的z -order。当元素之间重叠的时候,z-order决定哪一个 元素覆盖在其余元素的上方显示。通...

    Dreamy.TZK

扫码关注云+社区

领取腾讯云代金券