算法
文章平均质量分 50
追求卓越583
这个作者很懒,什么都没留下…
展开
-
字符串循环左移
字符串循环左移原创 2018-01-27 18:32:02 · 875 阅读 · 0 评论 -
最短路径—Floyd算法
Floyd算法:1,从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。2,对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。 Floyd-Warshall——只有五行的算法求任意两个点之间的最短路程。 从i号顶点到j号顶点只经过前k号顶点的最短路程,这是一种动态规划的思想。...原创 2018-09-14 20:47:54 · 868 阅读 · 0 评论 -
单元最短路径问题---Dijkstra算法
最短路径—Dijkstra算法和Floyd算法(理解):https://blog.csdn.net/m0_37345402/article/details/76695930理解最短路径——迪杰斯特拉(dijkstra)算法:https://www.cnblogs.com/iambupu/p/5713952.html最短路径问题---Dijkstra算法详解:https://blog.csd...原创 2018-09-14 20:04:18 · 3157 阅读 · 0 评论 -
C++ 快速排序算法的实现与改进(含笔试面试题)
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行(...原创 2018-09-10 21:50:58 · 1180 阅读 · 0 评论 -
C++求最大公约数和最小公倍数
方法一:辗转相除法 用 "较大数" 除以 "较小数",再用 "较小数" 除以 "第一余数",再用“第一余数”除以 “第二余数", 如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。#include <stdio.h>#include <stdlib.h>#include &a原创 2018-04-29 00:07:36 · 22016 阅读 · 0 评论 -
数组中Arrays.sort的排序方法是什么?
Arrays.sort()用的是快速排序算法。算法的思想:选择基准将数组一分为二,基准前面的比基准小,基准后面的比基准大,之后分别对这两部分继续之前的操作,已达到整个数组有序的目的。算法内容描述:先选择一个基准,指向数组开始的指针start和指向数组结束的指针end;当start小于end的时候,如果基准的值小于end指向数组的值时,end往前移动;当基准的值不在小于end指向数组的值的时候,交换...原创 2018-06-15 17:41:16 · 9647 阅读 · 1 评论 -
大数相乘
题目编写两个任意位数的大数相乘的程序,给出计算结果。比如: 题目描述: 输出两个不超过100位的大整数的乘积。 输入: 输入两个大整数,如1234567 和 123 输出: 输出乘积,如:151851741或者求 1234567891011121314151617181920 * 2019181716151413121110987654321 的乘积结果分析所谓大数相乘(Mult...原创 2018-06-07 19:11:15 · 1813 阅读 · 0 评论 -
C++先序和中序确定二叉树
思考:如何才能确定一棵树?结论: 通过中序遍历和先序遍历可以确定一个树 通过中序遍历和后续遍历可以确定一个树 通过先序遍历和后序遍历确定不了一个树。单独先序遍历:能求解根,但不能求解左子树什么时候结束、右子树什么时候开始。根据先序和中序结果画树算法1、通过先序遍历找到根结点A,再通过A在中序遍历的位置找出左子树,右子树2、在A的左子...原创 2018-05-25 15:16:10 · 13320 阅读 · 1 评论 -
动态规划
基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。区别: 与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免...原创 2018-05-12 08:52:33 · 1526 阅读 · 0 评论 -
LCS(最长公共子序列)注意:是可以不连续的,区别于最长公共子串
LCS的定义o 最长公共子序列,即LongestCommon Subsequence,LCS。o 一个序列S任意删除若干个字符得到新序列T,则T叫做S的子序列;o 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列。n 字符串13455与245576的最长公共子序列为455n 字符串acdfg与adfc的最长公共子序列为adf原创 2018-01-27 10:37:05 · 1433 阅读 · 1 评论 -
字符串的全排列(递归方法)
字符串的全排列原创 2018-01-27 20:03:44 · 3477 阅读 · 1 评论 -
排序算法的稳定性及其意义
稳定性的定义 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。判断方法对于不稳定的排序算法,只要举出一个实例,即可说明它的不稳定性;而对于稳定的排序算法,必须对算法进行分析从而得到稳定的特性。需要...原创 2018-09-15 09:25:20 · 2047 阅读 · 0 评论