- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 内部排序(五)快速排序(上)- 概述与选择枢轴
快速排序终于要来了,快速排序也是交换排序的一种,其实讲快速排序前应该先讲讲冒泡排序,因为快速排序是对冒泡排序的一种改进,那就先来用最快速度复习一下冒泡排序:冒泡排序:假设要对待排序了做升序排序,那么首先从待排序列第一个元素开始,和第二个元素作比较,如果第一个元素大于第二个元素,就把它们的位置交换,接着再对序列第二个元素和第三个元素作比较,如果第二个元素比第三个元素大,就交换位置,一直重复直到长...
2018-11-26 20:52:47 4425 1
原创 内部排序(四)归并排序的递归与循环实现
上一篇日志讲到了自己对堆排序的学习,堆排序时间复杂度能达到O(NlogN),且不需要额外的空间来存储排序过程中的有序序列,优点明显,不过堆排序不是稳定的,也就是说排序后相等数据之间的相对位置可能会发生改变。上一周的学习学到了一个同样时间复杂度为O(NlogN)的且是稳定的排序方法!那就是归并排序。归并操作其实更多用在外部排序中- -、,是外部存储器最常用的排序方法,用分而治之的思想,下面会说。...
2018-11-19 18:14:21 1088
原创 《健指算法》(一)反转牌面
有100张按顺序写着1-100数字的牌,一开始所有牌都是背面朝上。接下来,从第3张牌开始,隔2张牌翻牌(原本正面的变反面,反面的变正面)。然后又从第4张开始,隔三张牌翻牌。一直做下去,从第n张牌开始,每隔n-1张牌翻牌,直到没有可翻动的牌为止,求所有背面朝上的牌的数字? ...
2018-11-12 20:31:59 665
原创 内部排序(三)堆排序的两种实现
堆排序是一种选择排序算法,堆排序顾名思义要用到堆,首先来回顾下有关数据结构“堆”有哪些特点。堆常用二叉树来表示,而且如果不是特殊情况的话,通常用一棵完全二叉树来表示堆。因为完全二叉树的结点分布均匀,所以通常可以用数组来实现堆的存储。 根据堆中任一结点和其他结点的值的关系,堆分成两种,最大堆和最小堆。最大堆指堆中任一结点的值都大于其子结点的值;最小堆则相反,堆中任一结点的值都小于其子结点的值。...
2018-11-05 18:19:22 284
调用ACLLib库+MVC设计模式的单人版贪吃蛇小游戏(C语言实现)
2018-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人