排序算法 插入排序
一、算法介绍 二、算法实现 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序。就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复。 插入排序属于插入类排序算法。 除了我以外,有些人打扑克时习惯从第二张牌开始...
一、算法介绍 二、算法实现 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序。就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复。 插入排序属于插入类排序算法。 除了我以外,有些人打扑克时习惯从第二张牌开始...
一、算法介绍 二、算法实现 三、总结 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单。 冒泡排序属于交换类的排序算法。 一、算法介绍 现在有一堆乱序的数,比如:5 9 1 6 8 ...
人类的发展中,我们学会了计数,比如知道小明今天打猎的兔子的数量是多少。另外一方面,我们也需要判断,今天哪个人打猎打得多,我们需要比较。 所以,排序这个很自然的需求就出来了。比如小明打了5只兔子,小王打了8只,还有部落其他一百多个人也打了。我...
一、二叉树的数学特征 二、二叉树的实现 三、遍历二叉树 树是一种比较高级的基础数据结构,由 n 个有限节点组成的具有层次关系的集合。 树的定义: 有节点间的层次关系,分为父节点和子节点。 有唯一一个根节点,该根节点没有父节点。 除了根节点,...
一、字典 二、实现不可重复集合 Set 2.1.初始化一个集合 2.2.添加一个元素 2.3.删除一个元素 2.3.查看元素是否在集合中 2.4.查看集合大小 2.5.查看集合是否为空 2.6.清除集合所有元素 2.7.将集合转化为列表 2...
一、列表 List 二、实现双端列表 2.1.列表节点普通操作 2.2.从头部开始某个位置前插入新节点 2.3.从尾部开始某个位置后插入新节点 2.4.从头部开始某个位置获取列表节点 2.5.从尾部开始某个位置获取列表节点 2.6.从头部开...
一、栈 Stack 和队列 Queue 二、实现数组栈 ArrayStack 2.1.入栈 2.2.出栈 2.3.获取栈顶元素 2.4.获取栈大小和判定是否为空 2.5.示例 三、实现链表栈 LinkStack 3.1.入栈 3.2.出栈 ...
一、实现可变长数组 1.1. 初始化数组 1.2. 添加元素 1.3. 获取指定下标元素 1.4. 获取真实长度和容量 1.5. 示例 二、总结 因为数组大小是固定的,当数据元素特别多时,固定的数组无法储存这么多的值,所以可变长数组出现了,...
一、链表 1.1.初始化循环链表 1.2.获取上一个或下一个节点 1.2.获取第 n 个节点 1.3.添加节点 1.4.删除节点 1.5.获取链表长度 二、数组和链表 三、总结 讲数据结构就离不开讲链表。因为数据结构是用来组织数据的,如何将...
数据结构主要用来组织数据,也作为数据的容器,载体。 各种各样的算法,都需要使用一定的数据结构来组织数据。 常见的典型数据结构有: 链表 栈和队列 树 图 上述可以延伸出各种各样的术语和结构,如列表,集合,哈希表,堆,优先队列,二叉树,红黑树...