
数据结构
Mao1253
这个作者很懒,什么都没留下…
展开
-
堆排序
1.堆结构; 堆有大顶堆和小顶堆,大顶堆是每个结点都大于或等于其左右孩子结点的值的完全二叉树,小顶堆和大顶堆相反,是每个结点都小于或等于其左右孩子结点的值的完全二叉树。2.算法思想;(以大顶堆为例) 将待排序列构造成一个大顶堆,此时堆顶的根结点就是序列的最大值,将他移走(即将他与最后一个元素交换,这时序列的最后的元素就是最大值,然后将剩下的元素这重新构建成大顶堆,取其根结点即...原创 2018-08-14 11:30:09 · 221 阅读 · 0 评论 -
细谈冒泡排序
冒泡排序和选择排序是最简单也是最常用的两种排序,理解起来很方便,下面就介绍两种排序,理解了就永远不会忘了。一 :冒泡排序1. 基本思想: 两两比较相邻记录的关键字,若反序则交换两者,直到没有反序记录为止。2:初级版冒泡排序参考代码: 运行结果:这种冒泡简单暴力,从第一个开始后面一个一个比,确定第一个后再确...原创 2018-08-10 20:23:49 · 227 阅读 · 0 评论 -
选择排序
选择排序是通过 n-1 次的关键字之间的比较,从 n-i+1 个记录选择关键值。通俗的说就是从第一个开始,用后面的和他比较发现有比他更小的就用min来记录这个更小的值的下标,然后继续往下找,如果有比min记录更小的,那就用min改为记录更小的,从此可看出,第一躺min记录的一定是全部数据最小的那个,第二趟就是第二小的。参考代码:运行结果:...原创 2018-08-12 17:38:37 · 202 阅读 · 0 评论 -
直接插入排序和希尔排序
一 :直接插入排序1.思想: 将一个记录插入到已经排好序的有序表中,从而得到一个新的记录数加一的有序表。2.参考程序:3.运行结果:二:希尔排序1思想:希尔排序是在直接插入排序的基础上改进后更加有效率的一种算法准确说是当序列越无序这种方法就越能看出他的作用。参考代码:3.运行结果;总结:仔细对比直接插入和希尔的两种排序算法,可以...原创 2018-08-13 10:21:04 · 454 阅读 · 0 评论 -
快速排序
快速排序作为二十世纪十大算法之一,其地位毋庸置疑,一个合格的程序员是必须要学会快速排序的,不然被人知道了可会被笑话的,学习排序,你可以先找一个乱的序列,然后按代码算法一步一步走,看着代码怎么变的,看懂了思想和实现框架结构,之后就是多熟悉几遍代码,记住关键步骤。 思想: 通过一趟排序将待排序列分割成两个独立的部分,以枢轴为对象,比他小的放左边,比他大的放右边...原创 2018-08-13 21:01:45 · 233 阅读 · 0 评论