Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >读书笔记:《算法图解》第二章 选择排序选择排序:#

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

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

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

选择排序:#

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.01.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据结构和算法 Data Structure and Algorithm
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
用户7886150
2021/01/30
8380
《大话数据结构》总结第一章 绪论第二章 算法第三章 线性表第四章 栈和队列第五章 字符串第六章 树第七章 图第八章 查找第九章 排序
第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章 算法 算法的特性:有穷性、确定性、可行性、输入、输出。 什么是好的算法? ----正确性、可读性、健壮性、时间效率高、存储量低 函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n>N,f(n)总是比g(n)大,那么,我们说f(n)的增长渐近快于g(n)。于是我们可以得出一个结论,判断一个算法好不好,我们只通过少量的数据是不能做出准确判断的,如果我们可以
SeanCheney
2018/04/24
1.4K0
《大话数据结构》总结第一章 绪论第二章 算法第三章 线性表第四章 栈和队列第五章 字符串第六章 树第七章 图第八章 查找第九章 排序
《王道》数据结构笔记整理2022级_数据结构笔记整理
1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。
全栈程序员站长
2022/09/22
3.1K0
《王道》数据结构笔记整理2022级_数据结构笔记整理
【数据结构】第二章——线性表(4)
大家好,很高兴又和大家见面啦!!! 在前面的内容中我们介绍了线性表的第一种存储方式——顺序存储,相信大家经过前面的学习应该已经掌握了对顺序表的一些基本操作了。今天,我们将开始介绍线性表的第二种存储方式——链式存储。
蒙奇D索隆
2023/12/27
1870
【数据结构】第二章——线性表(4)
开发成长之路(15)-- 数据结构:编程基石
在写STL的时候,我就意识到了缺少了一篇数据结构。 提到数据结构,很多学生可能会想到学校里上的数据结构的课,教的那些数组、链表、栈、队列、树、图等
看、未来
2021/09/18
7580
数据结构与算法之线性表前言线性表
前言 上一篇《数据结构和算法之时间复杂度和空间复杂度》中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明。这一篇主要介绍线性表。 线性表属于数据结构中逻辑结构中的线性结构。回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构、几何结构、树形结构和图形结构四大结构。其中,线性表就属于线性结构。剩余的三大逻辑结构今后会一一介绍。 线性表 基本概念 线性表(List):由零个或多个数据元素组成的有限序列。 注意: 1.线性表是一个序列。 2.0个元素构成的线性表是空表。 3
VV木公子
2018/06/05
7.7K0
数据结构(三)
像我们排队吃饭等叫号一样,一个接着一个,1号后面是2号,2号后面是3号,如此类推。
可爱见见
2019/09/09
4520
数据结构(三)
数据结构之数组和链表的区别
所谓数组,就是相同数据类型的元素按一定顺序排列的集合;数组的存储区间是连续的,占用内存比较大,故空间复杂的很大。但数组的二分查找时间复杂度小,都是O(1);数组的特点是:查询简单,增加和删除困难;
全栈程序员站长
2022/09/07
2.1K0
数据结构之数组和链表的区别
深入浅出一下从电子商务到社交网络:排序算法在实际业务中的关键角色——动画可视化排序算法题试炼
可知,在循环过程中,每个元素都与它后面的所有元素比较一次(即所有元素都两两比较一次),比较次数之和为(n-1)+(n-2)+…+1,所以总比较次数是n(n-1)/2。
盛透侧视攻城狮
2025/04/27
580
深入浅出一下从电子商务到社交网络:排序算法在实际业务中的关键角色——动画可视化排序算法题试炼
《剑指offer》11.链表中倒数第k个节点
简单思路: 循环到链表末尾找到 length 在找到length-k节点 需要循环两次。
ConardLi
2019/09/08
3080
数据结构初探
数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始
猿_人类
2019/10/15
4970
数据结构知识点
a、顺序表插入元素,需要移动元素,这里需要把[i, n - 1]区间的元素全部向后移动一次,故移动的次数为n - 1 - i + 1
IsLand1314
2024/10/15
1310
数据结构知识点
算法笔记汇总精简版下载_算法与数据结构笔记
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树; 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态 规划、字符串匹配算法。
全栈程序员站长
2022/09/20
9410
数据结构基础题复习
分析:看下图,表中每一行(相当于结点中每一个结点)就是一个数据元素;数据元素中的每一项,比如张三的数学分析是90分就是一个数据项;整个表格是一个数据对象,它代表的都是学生的信息(具有相同性质的数据元素的集合)。
Maynor
2024/05/26
1870
数据结构基础题复习
数据结构与算法-链表
简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)
cwl_java
2019/10/26
2900
栈的基本操作
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈是只能在表的一端进行数据存取的数据结构。我们来看图示。其实还是很好理解的。
兰舟千帆
2022/07/16
3820
栈的基本操作
java算法刷题00——数据结构基础知识回顾
数据、数据元素(如一个账号)、数据项(密码、昵称)、数据结构(具有关系的一组数据元素集合,联想汉字的结构其实就是具有布局关系的符号组合)、数据对象(具有相同性质的数据元素的集合、一家海底捞的排队信息可以看作数据结构、全国所有门店排队信息看做同一个数据对象,它们虽无直接关系,但是具有同样的联系)
半旧518
2022/10/26
2940
C语言中都有哪些常见的数据结构你都知道几个??
上次在面试时被面试官问到学了哪些数据结构,那时简单答了栈、队列/(ㄒoㄒ)/~~其它就都想不起来了,今天有空整理了一下几种常见的数据结构,原来我们学过的数据结构有这么多~
用户6754675
2020/03/31
4K0
【愚公系列】软考中级-软件设计师 014-数据结构(考点简介)
数据结构是一种组织和存储数据的方式,它涉及如何在计算机中存储和访问数据的方法和技术。数据结构可以用来解决不同类型的问题,包括搜索、排序、插入和删除等操作。常见的数据结构包括数组、链表、栈、队列、树、图等。不同的数据结构有不同的特点和适用场景,选择合适的数据结构可以提高算法的效率和性能。
愚公搬代码
2024/01/26
3812
25考研王道数据机构课后习题-----顺序表链表部分
下面的这个说的是:下面的哪一个是组成我们的顺序表的有限序列,这个应该是数据元素,n个字符组成的这个内容我们称之为字符,数据项表示的是我们的这个数据元素的这个基本的组成单位;
阑梦清川
2025/02/24
710
25考研王道数据机构课后习题-----顺序表链表部分
推荐阅读
相关推荐
数据结构和算法 Data Structure and Algorithm
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档