
数据结构
是菜鸟不是咸鱼
是菜鸟不是闲鱼
展开
-
【常用排序算法】以最简单的方式理解选择排序
所谓选择排序就是每次把最大的或者最小的挑出来放在最右或者最左(其实我们人排序也是这种思想…所以我觉得选择排序是所有排序算法里最容易理解的)。但是要注意和冒泡排序区分: 还是用之前找宝藏的例子,这次这个人是把沙漠走完一个一个宝藏都看过之后,返回去拿到最大的那个给交换了算法也容易理解就不分析了#include <stdio.h>// 分类 -------------- 内部比较排序// 数据结构原创 2017-10-19 14:46:41 · 326 阅读 · 0 评论 -
【常用排序算法】以最简单的方式理解插入排序
思想理解: 插入排序的工作原理非常像抓扑克牌,最开始是一张,大的放后面,小的放前面。 主要要实现的就是插入,时间复杂度是O(1);但是主要费时的就是插入要实现插入位置之后的元素全部往后移动一位,但是如果插入的元素是已有牌里最大的,那么就直接放在最后就好。代码实现:#include <stdio.h>// 分类 ------------- 内部比较排序// 数据结构 ----------原创 2017-10-19 16:03:06 · 197 阅读 · 0 评论 -
【常用排序算法】以最简单的方式理解冒泡排序
(最近一直在看PHP,加上OJ 404了,所以这两天都没有写C,但是还是有在写代码的。)本人小白,而且脑子笨,理解算法比较困难,现在我把我对排序算法的理解贴出来以便以后复习理解。代码是其他博客里偷的,后面标识出处。1. 冒泡排序 冒泡排序简单来说就是把当前数字与右边的数字进行比较,如果大,那么就交换位置,否则就把我们盯住的当前值换成右边大的那个数,再和右边的数字比较,于是完成第一轮,实现的结果就原创 2017-10-19 14:03:05 · 553 阅读 · 0 评论 -
【常用排序算法】以最简单的方式理解快速排序
本小白觉得快速排序是最难理解的排序算法,特别是程序代码的实现,花了两个小时终于给看懂了…思想分析: 首先是设定了一个基准pivot,默认是第一个或者最后一个,(假设是第一个数)然后和后面的数进行比较,要是大于基准,就在原地不变,要是小于基准,就放在基准后面,按照比较顺序将后面小于基准的数字逐一排列,等遍历了一轮之后会发现,局势演变成了:基准【小于基准】【小于基准的最后一个元素】【大于基准】这样的原创 2017-10-19 18:33:19 · 282 阅读 · 0 评论 -
【常见排序算法】以最简单的方式理解归并排序
思想理解: 归并排序可以用分派来形容。最开始江湖上都是独立的人,大家很和睦,但是总是免不了有些人想掌握权力,于是他就收手下,就和其他人比武,赢了的做老大,渐渐队伍壮大,于是就形成了许多帮派,例如峨眉派,武当派,丐帮,天地会等等。每个帮主都想当老大,于是各帮帮主开始打斗比武,比如峨眉派和武当派大嘛,峨眉赢了,合并两帮,底下两派的二帮主也打斗比武,最后形成了鲜明的等级;同样的,丐帮和天地会也打,天地原创 2017-10-19 20:04:18 · 253 阅读 · 0 评论 -
【20171020】常用经典算法介绍
一、迭代法常用来求方程或者方程组近似根的一种常用算法设计方法。 具体求根的时候有两种可能的情况: a.方程无解,那么迭代就会无限循环; b.方程有解,但是迭代公式选择不当,或者迭代的初始近似根选择不合理,也会导致迭代的失败。二、穷举法 对可能的解按照某种顺序逐一检验。三、递推法 利用问题本身所具有的一种递推关系求问题解的一种方法。 例如,要求问题规模原创 2017-10-21 09:37:13 · 411 阅读 · 0 评论