排序算法
遗忘丶流年
大家一起学习,互帮互助,共同进步
展开
-
冒泡和选择排序的理解
今天,我们来说说算法里最简单的两个排序,那就是选择排序和冒泡排序,但是在这两个排序中多少还是会出现一些问题,先说说我的个人经验吧,在最开始学习C语言的时候,最先接触到的就是这两种算法,当时对C语言本来懵逼着,再别说什么算法,什么冒泡。没办法,我也就就只能记住代码的是实现,随着时间一天天的流逝,问题也就越来越明显,来说说冒泡选择的思想,为什么要这么做?以及到后来程序记混了,选择和冒泡记差了,除此之外原创 2017-10-23 00:58:37 · 646 阅读 · 0 评论 -
促其长谈之插入排序和希尔排序
说到排序,大家一下想起的一般都是什么快排,冒泡,往往很少想到插入排序和希尔排序,那么今天我们就来说说这两个排序吧顾名思义,插入排序就是在一个默认已经有序的一组数中插入一个数,插入之后,还要使得整个数列有序,这就是插入排序的基本思想,至于实现我们现在来说一下。void Swap(int &a,int &b){a=a+b;b=a-b;a=a-b;}void Insert_Sort(in...原创 2017-10-24 13:04:37 · 282 阅读 · 0 评论 -
大小堆之堆排序
之前已经说过了好些排序了,今天就说一下最后一个排序,那就是堆排序,但是我们这个堆和内存中的堆还不是一个堆,我们现在所说的大小堆其实是一个树。接下来详细的说一说先要说堆,那我们还是先说说一些最基础关于树的一些概念,就先说说二叉树好了,因为我们今天用到的就是二叉树,首先二叉树也是一种数据结构,它有父节点和子节点,在二叉树中有2个叶子节点,父节点和第一个子节点的关系一般是2倍的关系;然而堆排序就原创 2017-10-25 14:38:52 · 548 阅读 · 0 评论 -
闲来无聊来说说归并排序
说到归并排序,其实归并排序还是比较重要的,归并归并,就是先分后并,也就和分治法比较相似了,直切主题吧,我们来谈谈归并排序的基本思想,就是先将数组平均分为两部分,看其中两部分是否有序,若两部分都已经有序,则只需要把他两合并成一个新的数列即可,但要是两个数组还是无序的,我们就要再分,直到里面只有一个元素的时候或里面的元素已经有序。然后我们再将它们一步一步地合并起来。文字可能不太好理解,那我来给大家原创 2017-10-24 18:25:18 · 217 阅读 · 0 评论