自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 排序算法-二路归并排序

二路归并算法思想:将一个无序数组从中间分为两个子数组,子数组又从中间分为两个子数组,按此规则直到数组不可分,再依次对有序子数组进行排序。假如无序数组下面举一个实例:如下所示是一个无序的数组{13 7 9 3 14 29 16 1},接下来我们用二路归并法对其进行排序。首先:找到数组中间的数字3,接下来以{13 7 9 3}(数字3的左边)为一组进行排序,{14 29 16 ...

2018-08-28 12:19:20 2377

原创 快速排序之-堆排序

快速排序之-堆排序堆排序思想:对数组a[1]…a[n-1],进行一次排序使得得数组堆顶部a[1]关键字最大(或最小关键字),然后堆顶a[1]与数组末端关键字a[n-1]交换,对a[1]…a[n-2]进行相同的堆排序,排完序后啊a[1]最小,将a[1]与a[n-2]进行交换,对数组a[1]…a[n-3]按如上规则进行排序,交换,,,最后整个数组依次遍历完成后就得到一个由小到大的数组排序a[1...

2018-08-23 13:31:23 170

原创 常见排序算法--快速排序

常见排序算法–快速排序算法思想:以数组中第一个点为分界点,数组中比它小的所有结点就排在它的左边,比它大的所有结点排在它的右边;然后将左边数组,右边数组看成一个整体分别按照这种规则进行排序,直达所有结点排序完成。下面我结合实际例子进行解释假设初始数组为{5,2,7,9,1},第一步取数组第一个点5与数组最右边的数比较,如果最右边的数字比5大,就依次遍历这个最右边数字左边的数,直到找到...

2018-08-20 13:08:58 166

原创 常见排序算法-折半(二分)插入排序

其实是主要在二分查找算法的基础上执行插入操作接下来我结合算法的实际例子来解释初始数组 10 21 7 13 14 3 12 ,对其进行由小到大进行排序/先解释一下2分法,比如在一个有序数组{1,2,3,3,6,9,11}中,我要查找数字2在其中的位子,首先先比较2与数组中间数字3的大小,发现2小于3,则2肯定在数字3的左边数组{1.2.3},比较2与{1.2.3}的中间数2...

2018-08-17 18:35:53 490

原创 常见排序算法2–直接插入法vs希尔排序法

常见排序算法–直接插入法vs希尔排序法首先,我们通过一个例子来了解直接插入算法例如,对原始数组{15,24,3,49,10}进行直接插入排序(由小到大进行排序)第一个数15无法比较,第二个数24与15比较,不做改变,第三个数3先后与24,15进行比较移到24的前面,第四个数49先后与24,15,3进行比较49不做改变,10分别与49,24,15,3相比,10移到3的前面。...

2018-08-16 12:24:35 3703

原创 常见排序算法对比1--简单直接排序和冒泡排序

常见排序算法对比1——==(简单直接排序和冒泡排序)==直接选择排序算法思想:对一个存有n个无序数的一维数组a[i];按照有序进行排序(由小到大或者由大到小)对n个结点遍历n-1次,每次将剩下结点的最大数(最小数)放在结尾后面,过程为依次比对term(初始值为0或者+&)与a[i]的值,如果a[i]比较大(小),则term=a[i]。下面举个例子 步...

2018-08-14 13:05:32 376

原创 关键路径核心算法

关键路径核心算法:求一条不影响整体工程进度的最优路径方案,下面我将分为三个步骤详细讲解该算法。第一步:求各个事件(结点)的最早时间(在这里我们用一个数组va[]来存储各个事件的最早时间)和最晚时间(在这里我们用一个数组vb[]来存储各个事件的最迟时间),该工程图如下所示。首先进行拓扑排序(0,1,2,3)求最早时间,得到:va[0]=0;va[1]=3;va...

2018-08-12 12:53:34 5851

原创 简洁明了的拓扑图算法讲解

拓扑图:算法思想:类似于二叉树的层次遍历,遍历所有结点,将入度为0的结点存在一个栈中,依次输出栈内的各个结点时,将每个节点的子节点的度减1,然后将其中度为0的结点存入栈中,循环执行上述操作,直到所有结点遍历完。举个例子,如下图所示第一步,(A,B,C,D,E)的度数分别为(0,2,1,3,0)先将入度为0的结点存入栈中,(A,E)入栈,A出栈,则相应的结点D的度数3减变为2...

2018-08-11 12:27:23 9618

原创 程序小白光头强之弗洛依曼思想

弗洛依曼思想:只讲概念会显得空洞,下面我将结合一个算法实例来进行讲解如下图,这是一个初始矩阵,矩阵的行表示左端结点,矩阵的列表示右端结点,矩阵的内容为相应的边的内容。 a[i][j] 0 1 2 0 0 3 +& 1 7 0 1 2 +& 6 0刚开始path数组全部初始化为-1...

2018-08-10 13:45:04 532

原创 简洁明了的迪杰斯特拉算法

作用,求图中某一顶点到其余各顶点的最短路径思想:过程类似于普利姆算法,但不同的是一直更新这个固定结点与新结点的总路径距离,而普利姆算法是新的结点与剩余的结点间的两点距离,下面我结合算法实例进行解释如下图所示:解释:以端点1作为一个基本点(以其他的作为基本点都可以),接下来用一个数组存储各个端点到端点1的距离,(注意,只有这一个距离,也可以叫存储的距离为最短距离),把端点0到...

2018-08-09 13:12:55 248 1

原创 简洁明了的深度优先遍历算法

深度优先遍历思想:类似于二叉树的层次遍历,按优先级从高到低进行遍历下面举一个例子,如下所示刚开始的链式图从顶点0开始,然后0对应的3,2优先级最高,接下来是顶点3对应的(0,1),接下来是顶点2对应的(0,1,3),注意,已经遍历过的结点我们做好标志,接下来就不再遍历它,最后我们得到结点的排序(0,3,2,1) 相关代码//类似于层次遍历//将该个结点对...

2018-08-08 13:28:19 2766

原创 简洁明了的广度优先遍历

广度优先遍历思想:下面我结合实际例子进行讲解。这是基本图表内容接下来我们通过上述图我们可以发现顶点0连通的是顶点2,3;与顶点1联通的是2,3;与顶点2连通的是0,1,3;与顶点3联通的是0,1;首先我们可以先输入基本点0;其对应的结点为(3,2),先遍历完3以及3对应的所有子节点,然后再遍历2以及2对应的所有子节点,(类似于二叉树的先序遍历),结点0其连通的第一个基本点是3,...

2018-08-07 13:33:35 161

原创 简洁明了的kmp算法

接下来我把经典的kmp算法分为两步来行动第一步,先将模式串做好相应的标志位核心思想:解释起来比较抽象,还不如不解释,下面我将直接结合例子来解释第一步,先将各字符以及各字符在字符串的位置表示出来,用一个int型数组存储各个字符的下标,首先int[0]=-1(表示这是第一个字符),int[1]=0(对应字符串中地址为0的字符),如下所示: 第二步,比较S1刚刚已经确立的地址为...

2018-08-06 20:59:08 222 1

原创 简单明了的普利姆算法

普利姆思想:先选中一个结点为一个整体,在剩下所有结点与该整体的所有边中选一条最短的边,将这条新出现边的一个顶点归入这个整体中,然后在新合成的整体与剩下的所有结点的所有边中选一条最短的边,将这条新出现边的一个顶点归入这个整体中,以此类推,直到所有结点遍历完。举个实例,首先这是一个初始图表,如下所示: 第一步:我们先随机找一个基本点(例如1),然后分别列出该点到各边的距离,如下: ...

2018-08-05 21:19:41 3984 1

原创 简洁明了的克鲁斯卡尔算法求解

小试牛刀–++克鲁斯卡尔算法++考研资料书本定义:克鲁斯卡尔算法思想:每次找出侯选边中权值最小的边,就将该边并入生成树中。重复此过程直到所有边都被检测完为止(瞎几把说,不准确,漏了对重复多余边的检测),下面我结合实例来说明。举例说明:如下图所示,一共有4个节点(1,2,3,4),相应的一共有C42/2=6条边(四个顶点两两对其有12组可能的向量,但由于两组向量本身就是一条边,因此12/...

2018-08-03 22:53:34 2464 12

apache-maven-3.3.3-bin.rar

apache-maven-3.3.3-bin.rar,需要的自取,用于构建本地maven库,同时后续笔者可能会陆续提供maven相关组件压缩包,提供大家下载。

2020-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除