本章是克鲁斯卡尔算法的C++实现。目录1. 最小生成树2. 克鲁斯卡尔算法介绍3. 克鲁斯卡尔算法图解4. 克鲁斯卡尔算法分析5. 克鲁斯卡尔算法的代码说明6. 克鲁斯卡尔算法的源码转载请注明出处:http://www.cnblogs.com/skywang12345/更多内容:数据结构与算法系列 目录最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。
例如,对于如上...
动态规划01背包问题描述求解思路代码实现放入哪些物品代码动态规划我在上一篇博客里已经讲了一点动态规划了,传送门:算法学习 - 动态规划(DP问题)(C++)这里说一下,遇到动态规划应该如何去想,才能找到解决办法。最主要的其实是要找状态转移的方程,例如上一篇博客里面,找的就是当前两条生产线的第i个station的最短时间和上一时刻的时间关系。minTime(station[1][i]) = minTime(station[1][i-1] + time[i], station[2][i-1] + ti...
以下为大二时候的日志回放:“ 题目扩展到K阶,k阶斐波那契数列, 1阶(即k=1):1、1、1、1、1、1、1、……a0=a[1-1]=1,a1=1,a2=1,a3=1,a4=1,a5=1,a6=1……3阶(k=3):0、0、1、1、2、4、7、、、、、a0=0,a1=0,a2=a[3-1]=1,a3=0+0+1=1,a4=0+1+1=2,a5=1+2+4=74阶:0、0、0、1、1、2、4、8、15、27……a0=0,a1=0,a2=0,a3=a[4-1]=1,a4=1,a5=2,a6=4……a[8]=1+2+4+8=15……问题一般化,可以看出:数列的前k-2项的值都为0;第k-1项的值...
我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。下表给出了常见比较排序算法的性能: 为了便于以下描述,接下来全部算法的排序对象均为乱序数...
publicstatic List<double>RedPacketDoubleMethod(double total,int count,double min=0.01){List<double> list = new List<double>();if (total <= count * min) { thrownew Exception(message: "金额过小或最小金额过大!"); }double left_money = total,avg=0.0,money=0.0;Random ran = new Random();for (var i = count; i>1; i--) {avg = left_money / i *2;money = ran.NextDouble()*avg;money = money < min ? min : money;...
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/cutter_point/article/details/33732681 特定容器算法lst.merge(lst2)
将来自lst2的元素并入到lst。这两个都必须是有序的。lst.merge(lst2, comp)
元素将从lst2删除,第一个版本号使用<运算符,第二个版本号使用给定的运算符lst.remove(lst2)调用erase删除掉与给定值相等(==)或令一元谓词为真的每一个元素lst.remove_if(pred)lst.reverse(...
1)最长不重复子串使用string和vector<string>string FindLongestNonRepeatSubstring(string str)
{if (str.empty()) return"";string tmp;//存放临时不重复的子串vector<string> svec;//存放所有不重复的子串int start = 0;//标记每次开始查找子串的下标int pos = -1; //查找当前字符在子串中的位置下标tmp.push_back(str[0]);for (unsigned int i = 1; i < str.size(); ++i){pos = tmp.find(str[i]);if (pos == -1){tmp.push_bac...
第一:消失的数字对于一个int数组其特点为:
1. 其元素个数为n
2. 每个元素的值为[0,n]之间(前闭后闭区间)
3. 元素的值没有重复,即0-n,这n+1个数字中的n个数字组成的数组1.1 问题在时间复杂度为O(n)和空间复杂度为O(1)的条件下,找到缺失的数字1.2 解法利用异或的特点:1. 0 ^ A = A2. 0 ^ A ^ A = 0
将0 与数组中每个元素以及0-n分别进行异或计算 ;
由于性质2,可得结果 = 0 ^ 缺失数字 = 缺失数字(性质1)1.3 代码实现#def...
问题描述:Eratosthenes筛是一种用于计算小于N的所有素数的方法。我们从制作整数2到N的表开始。我们找出最小的未被删除的整数i,打印i,然后删除i, 2i, 3i, ..., 当i > √N时,算法终止。首先,没必要做2到N的表,在一个循环内遍历2到N即可。其次,所谓最小也没必要判断,依次遍历时整数i自然是它到最后一个数之间的最小值。最后,整数i是否被删除等价于整数i是否素数flag[i]==1或0表示,1表示素数,0表示非素数。可以这么做:遍历...
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void ma...
1.查找算法find: 区间查找find_first_of: 查找区间第一次出现adjacent_find: 查找第一次重复的数search: 子序列查找search_n: 子序列查找出现次数count: 区间统计count_if: 条件统计equal: 比较有序查找:binary_search: 二分查找upper_bound: 查找最后一个大于查找的值lower_bound: 大于等于查找的值equal_range: 区间比较,必须是有序序列void testSearch()
{int array[10] = { 1,3,5,7,8,2,0,1,34,9 };vector<int> vec;vec.assi...
网上几种算法中速度相对较快的publicstatic Bitmap MakeGrayscale(Bitmap original)
{//create a blank bitmap the same size as originalBitmap newBitmap = new Bitmap(original.Width, original.Height);//get a graphics object from the new imageGraphics g = Graphics.FromImage(newBitmap);//create the grayscale ColorMatrixSystem.Drawing.Imaging.ColorMatrix colorMatrix = new System.Drawing.Imaging.ColorMatrix(n...
C++ 算法 算法概念算法是特定问题求解步骤的描述在计算机中表现为指令的有限序列算法是独立存在的一种解决问题的方法和思想。对于算法而言,语言并不重要,重要的是思想。 算法和数据结构区别数据结构只是静态的描述了数据元素之间的关系高效的程序需要在数据结构的基础上设计和选择算法程序=数据结构+算法 总结: 算法是为了解决实际问题而设计的 数据结构是算法需要处理的问题载体 数据结构与算法相辅相成 算法特...
本文参考自这篇文章,由于其贴出来的代码运行效率较低而且不太符合本人的想法和习惯,所以对其进行了算法的重新设计和代码的重写。 所谓图像的连通域,指的是图像上像素点值相同或者相近的点两两相邻接所组成的一块区域。而对于邻接,有四邻接和八邻接两种,如下:四邻接 八邻接 上图所示的‘O‘与‘X’相邻接,本文采取的是4邻接方式。 在查找图像连通域的时候,一般都需要经过一个二值化的过程,将图像的像素值简化成非...
最长公共子序列(LCS) 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 给定两个字符串s,t, 求出这两个字符串最长的公共子序列的长度. 字符串的子序列并一定要连续, 能够包含间隔.即最长公共子序列问题(LCS, Longest Common Subsequence)使用动态规划, 假设字符相等, 两个字符串就依次递增一位, 一直到字符串的结尾.代码:/** main.cpp** Created on: 2014.7.17* Author: spike*//*eclipse cdt, gcc 4.8.1*/#inclu...