摘要: 1 堆的概念 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当满足下列关系之一时,称之为堆: (1) R 阅读全文
posted @ 2019-10-03 15:25 peakcar 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 1 简单选择排序 1.1 算法步骤 a.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 b.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 c.重复第二步,直到所有元素均排序完毕。 简单选择排序的平均时间复杂度为O(n2),但是它为不稳定的的排序方法。 阅读全文
posted @ 2019-10-03 15:04 peakcar 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 交换排序的基本思想是两两比较待排序元素的关键字,发现这两个元素的次序相反时即进行交换,直到没有反序的元素为止。本次介绍两种交换排序,即冒泡排序和快速排序。 1 冒泡排序 1. 1 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后 阅读全文
posted @ 2019-10-01 19:46 peakcar 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: 插入排序的基本思想:每次将一个待排序的元素按其关键字大小插入到前面已经排好的子序表中的适当位置,直到全部元素插入完成为止。本次介绍直接插入排序,折半插入排序和希尔排序。 1 直接插入排序 直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和 阅读全文
posted @ 2019-10-01 17:42 peakcar 阅读(249) 评论(0) 推荐(0) 编辑