算法分析
文章平均质量分 77
WIN_CLASS
人生有两条路,一条用心走,叫作梦想;另一条用脚走,叫作现实。
展开
-
数据结构中常用的二叉树算法汇总
所有函数用到的树节点定义均如下: typedef struct node { char data; struct node *lchild; struct node *rchild; }NODE; #define MAXN 100 二叉树的递归遍历 前序递归遍历 void preorder(NODE *root) { if(root != ...原创 2017-04-02 11:43:56 · 562 阅读 · 0 评论 -
EOJ1054-机器设计
Description某机器由 n 个部件组成,每一个部件可从三个投资者那里获得。 令 wij 是从投资者j 那里得到的部件 i 的重量, cij 为该部件的耗费。编写一个回溯算法,找出耗费小于C 的机器构成方案,使其重量最少。Input测试包含多组测试数据.每组测试数据第一行含两个整数n(1<=n<=50),C(1<=C<=10000)。 n表示某机器由 n 个部件组成,...原创 2016-06-10 14:24:58 · 559 阅读 · 0 评论 -
对求最短路径常见算法的简单总结
最近正好在学最短路径,借此机会把学到的知识总结下,一来分享给大家阅读,二来方便以后自己查阅。先列一下下面会总结到的求最短路径的算法:1.Dijkstra算法;2.Bellman-Ford算法;3.Folyd算法;4.SPFA算法;Dijkstra算法:求单源最短路径(不带负权重的环)step1.初始化,dis[V0]=0,dis[i]=无穷大(i≠V0,表示不可达);step2.从V-U中选择使d...原创 2016-05-28 13:58:05 · 2640 阅读 · 0 评论 -
全排列的实现
实现方法文章主要讲两种实现全排列的方法: 1. 使用C++的STL模板实现数字或字符的全排列。 2. 使用递归的思想实现数字或字符的全排列。STL模板实现在C++的模板中,有一对专门用于实现数字或字符全排列的模板:next_permutation(_BIter, _BIter)和prev_permutation(_BIter, _BIter)。原创 2017-04-06 18:41:00 · 685 阅读 · 1 评论 -
两种方法求解逆序对
逆序对定义:对于一个包含N个非负整数的数组A[1..n],如果有i A[ j ],则称(A[ i] ,A[ j] )为数组A中的一个逆序对。 常见的两种方法求解逆序对:1.穷举法(暴力求解),时间复杂度O(n^2)。2.归并法, 时间复杂度O(nlogn)。 穷举法:对于一个给定的序列,依次从左往右取每一个元素,从该元素右边第一个元素开始向右扫描,遇到比它小的元原创 2016-05-29 10:46:11 · 2288 阅读 · 0 评论 -
LeetCode|Longest Substring Without Repeating Characters
题目 Given a string, find the length of the longest substring without repeating characters. Examples: Given “abcabcbb”, the answer is “abc”, which the length is 3.原创 2017-04-15 10:16:16 · 374 阅读 · 0 评论 -
LeetCode|Gray Code
给定一个数n,产生n位格雷码的十进制形式~原创 2017-04-05 19:52:57 · 334 阅读 · 0 评论 -
格雷码的生成
格雷码(Gray Code):在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。原创 2017-04-05 20:29:09 · 692 阅读 · 0 评论