
c++
bensonrachel
这个作者很懒,什么都没留下…
展开
-
连通图的(领接矩阵储存)创建和遍历(包含BFS,DFS两种算法)
#include<iostream>#include<queue>using namespace std;//采用邻接矩阵表示法创建无向网//用两个数组分别存储顶点表和邻接矩阵const int MVNum = 100; //最大顶点数 typedef char VerTexType; //假设顶点的数据类型为字符型typedef int ArcType; //假设边的权值类型为原创 2017-05-25 13:14:19 · 1080 阅读 · 0 评论 -
算法:动态规划-数字三角形的最优解(打印路径)
算法:动态规划-数字三角形的最优解(打印路径)原创 2017-11-28 21:02:47 · 2578 阅读 · 0 评论 -
LintCode-第一题:A+B problem (不用“+”等运算符)(位运算实现加法)
位运算实现加法运算原创 2017-12-09 00:19:46 · 756 阅读 · 0 评论 -
算法:(贪心算法)-独木舟问题
进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。原创 2017-11-21 18:57:20 · 3951 阅读 · 0 评论 -
算法:(贪心算法)-程序存储问题
程序存储问题Description 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。原创 2017-11-21 19:19:33 · 6471 阅读 · 0 评论 -
算法:(贪心算法)--删数问题
给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。原创 2017-12-18 22:24:19 · 8236 阅读 · 1 评论 -
算法:动态规划-青蛙过桥(痛扁自己)
一座长度为n的桥,起点的一端坐标为0,且在整数坐标i处有a[i]个石头【0<=a[i]<=4】, 一只青蛙从坐标0处开始起跳,一步可以跳的距离为1或2或3【即每一步都会落在整数点处】, 青蛙落在i处会踩着该点的所有石头,求青蛙跳出这座桥最少踩多少个石头?原创 2017-12-04 16:43:58 · 3737 阅读 · 2 评论 -
C++:sort函数的基本用法
//通过以下程序学习sort函数的基本用法 //若要对数组进行排序,同时数组元素是基本类型,则sort(a+begin,a+end)表示对[a[begin], a[end])升序排序//若数组元素不是基本类型,则需要实现函数bool cmp(Type a, Type b),sort(a+begin,a+end, cmp),让sort()函数学会怎样去比较 #include原创 2018-01-21 22:44:25 · 381 阅读 · 0 评论 -
算法:动态规划-切木头问题(钢条切割问题)
给自己留个纪念吧:一学期的算法课结课(2017年1月3日)期末考试结束,期末考试A了前三道,贴一道动态规划的题目吧。考试题目上机的题目是这样的:切原木问题:给定一根长度为N米的原木;另有一个分段价格表,给出长度,对应的价格PL。要求你找出适当切割原木分段出售所能获得的最大收益RN。例如,根据下面给出的价格表,若要出售一段8米长的原木,最优解是将其切割为2米和6米的两段,原创 2018-01-14 12:07:55 · 14691 阅读 · 0 评论 -
算法:最佳调度问题(回溯法-解法)
最佳调度问题(回溯)【问题描述】 假设有n个任务由k个可并行工作的机器完成。完成任务i需要的时间为ti。试设计一个算法找出完成这n个任务的最佳调度,使得完成全部任务的时间最早。【编程任务】 对任意给定的整数n和k,以及完成任务i需要的时间为ti,i=1~n。编程计算完成这n个任务的最佳调度。【输入样例】7 32 14 4 16 6 5 3【输出样例】 17原创 2017-12-30 13:11:55 · 12161 阅读 · 0 评论 -
算法:栈(顺序栈)的使用——利用顺序栈将非负十进制数n转换成相应的二进制数并输出
算法:栈(顺序栈)的使用——利用顺序栈将非负十进制数n转换成相应的二进制数并输出 一个规律(算法):十进制的数通过1,与2求余。得到一个数2,本身除2,重复1,2。把所有1步骤的数摆在前一个数的左边。然后再把左右顺序调转。 算法部分:/*利用顺序栈将非负十进制数n转换成相应的二进制数并输出*/#include<iostream>#inc...原创 2018-08-28 21:42:26 · 16761 阅读 · 1 评论 -
算法:快速排序(快速排序其实有很多种不同写法和代码形式)
还是那句话,快速排序有着大学问,要写出属于自己的快排,不要过时了就忘了。原创 2017-11-19 09:17:54 · 931 阅读 · 0 评论 -
算法:单调递增最长子序列
设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。输入格式:输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开输出格式:最长单调递增子序列的长度输入样例:在这里给出一组输入。例如:51 3 5 2 9输出样例:在这里给出相应的输出。例如:4#includeus原创 2017-11-14 11:43:23 · 2480 阅读 · 0 评论 -
算法:冒泡排序
基本的东西,还是要掌握好的。连一个冒泡都写不出来就真的很....虽然是笨重了点这种排序。不管怎样还是要会并且记住对吧void BubbleSort(int a[],int n){ int temp; for(int i = 0;i<n-1;i++){ for(int j = 0;j<n-1-i;j++){原创 2017-11-18 18:36:27 · 186 阅读 · 0 评论 -
建立Hash表(散列表)(运用线性探测法解决冲突)
输入key值。建立与查找。原创 2017-06-08 19:51:08 · 4991 阅读 · 0 评论 -
求逆序对数目
求逆序对数目;注意:本问题算法的时间复杂度要求为O(nlogn)原创 2017-09-25 22:38:00 · 3450 阅读 · 0 评论 -
算法:二分查找
输入n值(1<=n<=1000)、n个整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。输入格式:输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。输出格式:输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。输入样例:4 1 2 3 4 1 输出样例:0 2#include<iostr原创 2017-09-27 18:54:17 · 3118 阅读 · 0 评论 -
算法:改写二分搜索算法
设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。问题来源:题目来源:《计算机算法设计与分析》王晓东输入格式:输入有两行:第一行是n值和x值; 第二行是n个不相同的整数组成的非降序序列,每个整数之间以空格分隔。输出格式:输出小于x的最大元素的最大下标i和大于x的最小原创 2017-09-27 19:16:50 · 7922 阅读 · 1 评论 -
找第K小的数(O(N))(运用随机思想)
设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。(称为:线性时间选择算法)线性时间选择随机划分法模仿随机化快速排序算法设计利用“快排的或者类似二分”的思想,每次以枢纽为界,分两边,每次只需处理一边即可(抛弃另一边),平均情况下的运行时间界为O(n),这种算法以期望时间做选择。《算法都论》里是,在分治时用随机数来选取枢纽(算法导论中伪代码见图),好吧,这是原创 2017-09-28 19:39:09 · 5190 阅读 · 0 评论 -
求两个有序序列的中位数。(要求时间复杂度为O(logN))
1.实践题目求两个有序序列的中位数。(要求时间复杂度为O(logN))2. 问题描述已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0, A1…AN-1的中位数指A(N-1)/2的值,即第[(N+1)/2]个数(A0为第1个数)。3.算法描述总体思想:采用分治与递归策略,二分法每次将问题规模减半(约减半),然后对问题进行递归处理,在进行递归原创 2017-10-04 01:17:03 · 11321 阅读 · 0 评论 -
算法:数字三角形(DP)
动态规划-数字三角形给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。输入格式:输入有n+行: 第 1 行是数字三角形的行数 n,1输出格式:输出最大路径的值。输入样例:在这里给出一组输入。例如:5 7 3 8 8 1原创 2017-11-12 23:18:30 · 1980 阅读 · 0 评论 -
算法:动态申请数组(new)后将数组所有元素置零(初始化数组)的方法(炒鸡简单)(C++语言)
数组初始化为0的炒鸡简单的方法!(C++)原创 2017-11-18 17:06:04 · 5289 阅读 · 0 评论 -
算法:快速排序
首先,说一下我对快排这两天研究的感想。在我看来 ,快排是算法基础,很深奥,引用某博客大牛的一句话,“关于快速排序算法:一个90%的人都不懂其原理、99.9%的人都不能正常写出来的算法.)”一直我以为自己懂了这个算法,不就是两边找到大的跟小的换一下,再递个归搞定,但是其实是自欺欺人,自己并没有真正弄懂这个算法,都是模仿着别人的代码写出来,并不是根据自己的对于这个算法的理解写出代码,所以就原创 2017-11-18 18:26:25 · 311 阅读 · 2 评论 -
算法:顺序表L中删去值为X的元素,要求O(n)的时间复杂度及O(1)的空间复杂度
对于长度为n的顺序表L,编写一个算法,该算法删除线性表中的所有值为X的元素。要求:时间复杂度O(n) 空间复杂度O(1)算法思路:方法一:用K记录L中不为X的元素的个数,即需要保存的元素的个数,边扫描边统计k,并将不等于X的元素向前移动k个位置,最后修改L长度,K表示不等于X的元素个数。方法二:用G记录L中等于X的元素的个数,边扫描边统计G,并将不等于X的元...原创 2019-06-30 12:41:00 · 5882 阅读 · 0 评论