随笔分类 - 数据结构与算法
摘要:线性表是一种常用的数据结构,通常用来存储数据,存储方式是线性的。常见的线性表有顺序表, 链表等。顺序表是基于数组实现的,链表是通过一个个节点链接而成。线性表具有随机访问的机制,可以 在任意位置插入和删除数据元素。 C语言实现: #define MaxSize 10 typedef struct{ c
阅读全文
摘要:堆排序 堆排序是一种原地排序算法,在任何时候,数组只有常数个元素存储在输入数组以外。 堆排需要用到堆,堆是一种数据结构,它可以被视为一棵完全二叉树,树中每个节点与数组中存放给节点的值对应。 由二叉树的性质,我们可以知道父节点下标为i/2,左子树节点为2i,右子树节点为2i+1. 二叉堆有两种,分为最
阅读全文
摘要:插入排序 插入排序是以一种对少量元素进行排序的有效算法,插入排序工作原理跟多人打牌时,整理手中的牌差不多。对于未排序的数据,在已排序序列从后往前扫描,找到相应位置并插入。 即把将要插入的元素与前面已经有序的序列一一比较,找到合适的位置。 伪代码表示 for j<- 1 to length[A] do
阅读全文