摘要: 计数排序是需要假设输入数据的排序之一,它假设输入元素是0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,计数排序的时间复杂度为θ(n)。 因为不是通过比较来排序,所以它的时间复杂度可以达到θ(nlgn)以下。 计数排序是稳定的排序之一。 代码如下:(仅供参考) //计数排序期望输入数据都是 阅读全文
posted @ 2020-01-14 19:24 简讯 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 快速排序可以说是最重要的排序,其中延伸的思想和技巧非常值得我们学习。 快速排序也使用了分治的思想,原理如下: 分解:数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1..r]中 阅读全文
posted @ 2020-01-14 19:09 简讯 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 归并排序利用分治策略进行排序。原理如下 分解:分解待排的n个元素的序列成个具n/2个元素的两个子序列。 解决:使用归并排序递归地排序两个子序列。 合并:合并两个已排序的子序列以产生已排序的答案。 归并排序的时间复杂度是θ(nlgn)。 归并排序是稳定排序之一。 归并排序不是原址排序,在合并阶段需要申 阅读全文
posted @ 2020-01-14 18:56 简讯 阅读(1428) 评论(0) 推荐(0) 编辑
摘要: 插入排序是最常用的排序之一。 在输入规模较小的时候,插入排序的性能较好。 最好情况下插入排序的时间复杂度是O(n),平均情况则为O(n2)。 插入排序是稳定的排序算法之一。 基本思路为从第二个元素开始,依次插入前面已经排好序的序列,利用循环不变式很容易理解。 代码如下:(仅供参考) 1 void I 阅读全文
posted @ 2020-01-14 18:45 简讯 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 所用器件:STC89C516,矩阵键盘,LCD1602,16*16点阵,74HC595,无源蜂鸣器,晶振为11.0592MHZ 使用说明: 开机(复位)进入启动界面,1602显示Welcome。500ms后进入菜单界面,1602显示SnakesSubsonic(贪吃蛇)。此时S1按键为上翻,S3按键 阅读全文
posted @ 2018-09-15 15:11 简讯 阅读(3034) 评论(0) 推荐(0) 编辑