启发式算法:启发式算法实现图着

启发式算法是指种依赖于人想法,采用试探性逐步挖求解思路方法.以下使用贪心算法实现了图着色,参数为输入文件和节点数,其中,输入文件以矩阵方式存储图,非0表示两节点可达/相临.这种算法并不总能得到最优解,只保证得到近似最优解. 其实,顶点编号思路方法决定了这种算法结果.至少存在种编号思路方法使这个贪心算法能得到最优解./*$ID: icymoon@NKU* Just... [阅读全文]

选择排序算法:算法1.2--选择排序

思路方法:从M个数中找出最小个数,放在无序数列最前面.算法正确性是明显.如果有N个数,那么需要N-1轮搜索.第i次搜索要比较,要比较N-i次比较,则比较次数为:(N-1) + (N-2) + (N-3) + ... + 1 = N(N-1)/2 O(N^2)# stdlib.h# stdio.h# errno.h# time.h# MAX_LENGTH 100/... [阅读全文]

已知n是正整数:求n个不同整数中的最大元算法

参考:[http://www.crazycoder.cn/]比较次数: N-1参考:[http://www.crazycoder.cn/]参考:[http://www.crazycoder.cn/]#include stdlib.h#include stdio.h#include time.h#define MAX_LENGTH 100/*Show usage*/void usage(char *... [阅读全文]

加密算法:插入排序算法

插入排序算法代码:# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s the count of numbers to sort (should be less than 10... [阅读全文]

顺序查找算法:顺序搜索算法

如果数据规模为N,即list长度为N,显然,最坏时间复杂度W(N) = N.最好当然是在第个,B(N)=1设X为要搜索元素,X在list中,则有N种情况,X=list[1], X=list[2], ... X=list[n],X不在List中情况为X=out_list.假设X在list中概率为q, 则不在list中概率为 1-q.同时假设X在list中等于任何个... [阅读全文]

最小费用最大流算法:求最大最小元素算法

问题:求列数中最大最小值,设共有N个数字.1. max_min1最简单想法是平凡算法,只要挨个比较就可以了.求最大值需要N-1次比较,最小值需要N-2次比较.则T(N) = W(N) = A(N) =2N -3显然 S(N) = O(1)2. max_min2分别去比较得出结果即可,求得最大最小值各需要N-1次比较.T(N) = W(N) = A(N) = 2N... [阅读全文]

排序算法:基于相邻元比较的排序算法

这几个排序算法都是基于相邻元素比较而且都是O(N^2)阶算法在最坏情况下基于相邻元素比较及交换算法至少需要N(N-1)/2次比较平均情况下至少需要N(N-1)/4次比较算法2.1 SelectSort,参见http://blog.chinaunix.net/u/12325/showart.php?id=316152算法2.2 InsertSort,参见http:... [阅读全文]

shell排序算法分析:Shell排序算法

Shell排序把list划分成了M个子序列不再基于相邻元素的间比较和交换 而是每隔几个数字进行比较和交换当然当划分distance为1时候就成了insertsort了这样好处在于每次交换和移动可能减少M个逆序# stdlib.h# stdio.h# sys/time.h# time.h# math.h# MAX_LENGTH 100/*Show usage*/v... [阅读全文]

快速排序的算法:快速排序算法

这是个非常经典排序算法O(NlogN)阶# stdlib.h# stdio.h# sys/time.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s the count of numbers to sort (... [阅读全文]

快速排序算法:快速排序的改进算法

原书中给出此算法伪代码有误...fa, 以下代码可能有误欢迎指正.事情是这样比的于原来快排这个思路方法把递归改成了自己维护栈而且是单侧进栈...# stdlib.h# stdio.h# sys/time.h# time.h# MAX_LENGTH 100# STACK_INCREASE 20 curr; * list = NULL; * stack = NULL... [阅读全文]

序列号算法:有序序列的合并算法

将两个有序队列合并为个这个并不复杂只要比较即可W(N)=N-1# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s length of 1st list length of 2n... [阅读全文]

排序算法:合并排序算法

合并排序也用了分治策略不过划分只是从中间做而merge复杂些.# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s length of 1st list length of 2n... [阅读全文]

合并排序算法:合并排序算法的改进算法

基本思路是先从list中依次找出两个有序子list,merge的再继续找.scan轮后进行下轮查找直到发现从list首到list尾为最大有序子列(即list有序)为止.额外空间开销大但是充分利用了list中有序部分减少了扫描次数.BTW:据说这样思路方法适合于并行计算.:)# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*... [阅读全文]

堆排序:堆排序算法

# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s the count of numbers to sort (should be less than 100)\\n\", p... [阅读全文]

软件过程改进:改进的堆修复过程

BTW:发现自己智商有问题地说...还是觉得原书算法描述对某些输入还是有问题地说...-_-b# stdlib.h# stdio.h# time.h# MAX_LENGTH 100/*Show usage*/void usage(char * prog){ prf(\"%s Usage:\\n\", prog); prf(\"%s the count of nu... [阅读全文]

路由选择算法:简单的选择算法

问题名称:Selection问题描述:求N个元素中第k元不关心其他元素有序问题.比如求k=[N/2]中值问题.最简单想法是将整个list排序然后给出第k个但是最好排序也是O(N*lgN)而这个问题有O(N)阶解.实际上Selection是求快排中划分元位于k划分.比的于QuickSort, QSelect只需要对侧进行递归.当然最坏情况下还是O(N^2)和快排相... [阅读全文]

数学归纳法:递归设计与数学归纳法例题分析

递归是设计中常用到种简单易懂思路方法在很多场合下利用递归可以大量减少代码量 递归往往能体现设计者头脑聪慧简单递归省去了大段大段代码让人叹服不已那么递归设计又有怎样固定思路呢?本文将介绍递归和数学归纳法的间联系希望给读者些启迪 数学归纳法是数学中重要种证明思路方法当证明个数学定理时采用数学归纳法思路是先证明对于简单可以代入数定理成立;再在假设定理对某数N成立前提... [阅读全文]

分部积分法:龙贝格积分法

估计很多人对龙贝格积分法不是很连接吧,下面我一起来看看龙贝格积分法代码:#include math.h#include stdio.h#define eps 0.0000001#define max 20double f(double x){if(x==0)return 1;elsereturn (sin(x)/x);}void romberg(double a,double b){double... [阅读全文]

银行家算法

操作系统是大 2时学,当时实验课上要求编银行家算法,我就从网上找个代码但看者总觉得有些地方想不通,因此,直对这个算法不理解,现在要作操作系统课程设计,我还选银行家算法,我没去看别人如何做,完全是根据书上算法,按照自己理解搞出来端代码,还是比较满意. 我和网上其他代码比较过,算法都是样,但有些地方思路区别,比如检测系统状态算法check,这个地方正是我不明白地方,... [阅读全文]

矩阵算法:螺旋矩阵算法

这个问题看似很难,但是其实只有有了正确的,规范的逻辑思想算法以后(就像看了这个算法以后),感觉其实这个问题很简单,于是我们不但要学习高深的算法,还要掌握一流的逻辑思维理念。这个算法值得我们学习的地方就是他的数学建模思想,把复杂的问题抽象出来,成为了4个方向的结构式模块组合,于是复杂的问题就简单化了!!! #includeiostream #includeiomanip usingnamespace... [阅读全文]

方法覆盖:棋盘覆盖实现方法

棋盘覆盖问题的解决方法,使用C语言编成的,大家一起看看吧。 /**//* * * *Filename:chess_board.c * *Description:thesolutionofchessboard’scoverage * *Version:1.0 *Created:09/16/0622:37:43CST *Revision:none *Compiler:gcc * *Author:lir... [阅读全文]

加密算法源代码:随机算法求圆周率演示程序源代码

共享下随机算法求圆周率演示源代码using ;using .Collections.Generic;using .Collections;using .Text; ConsoleApplication1{ Program { void count(Random rand) { Console.Write(\"请输入运算次数:\"); Int32 N = ... [阅读全文]

平衡二叉树实现代码

找了很久才找到平衡 2叉树实现代码# stdio.htypedef struct bitreetype{ item; bdegree;/*平衡因子,左子树深度-右子树深度*/ struct bitreetype *lchild; struct bitreetype *rchild;}bitree;typedef struct treequeuetype{ ... [阅读全文]

字符串匹配算法:朴素(Naive)字符串匹配算法代码

作为最原始的字符串匹配算法,它的时间复杂度是O((n-m+1)m)#include \"stdio.h\"//计算字符串的长度int Length(char *s){int count=0;while(*s++!=\'\\0\')count++;return count;}//字符串匹配void NaiveStringMatching(char *t,char *p){int n=Length(t... [阅读全文]

图论算法:C++图论算法

下面给大家介绍些经典图论算法C描述 #c //常量定义: constmaxV=100; constdoubleInf=1e100; //constInf=2000000000; //Graph类定义: templateT structGraphMatrix{ v;//顶点数 e;//边数 Ta[maxV][maxV];//邻接矩阵 voidinit{ mem(a... [阅读全文]

因子分解算法:整数分解算法

整数分解算法是我们经常要用到个算法下面我就起学习下吧1. the number can be divided o smaller repeatable numbers,for number 6:65+14+2 4+1+13+3 3+2+1 3+1+1+1......Algorithm:public split( n, m) { (n1 || m1) ... [阅读全文]

回溯与递归:递归与动态编程

  前面我还刚刚在学习递归时拿Fibnoacci数列递归实现做递归学习例子呢今天看到<<算法I-IV-基础数据结构排序和搜索>>动态编程节时有这么段话:   下面是个Fibonacci数列递推直接递归实现千万不要使用这样它极端低效实际上对于计算F(N)递归数目正是F(N+1),但是F(N)大约是1.618N次方令人时移尴尬事实是那个递归(见上篇日志)是针对这个微... [阅读全文]

迭代法:迭代法使用方法小结

当迭代法做多了的后便感受到这种思想好用了,今天再次实现用迭代法求解问题感觉轻松了不少 当某个有关x迭代式xk=fi(xk_1)保持收敛时则可利迭代来求出最后结果直到满足精度要求为止. 对于线性方程组求解中迭代法应用亦是如此,当矩阵规模大于100*100时迭代法优势就突现出来了. 1)Jacobi 对于线性方程组可以很方便对第i行中元素xi用该行中其余x来表示 即... [阅读全文]

拓扑排序算法实现方法:拓朴排序算法实现方法

\"[0引言] 有时可以用图来表示类事物或集合间先后依赖关系比如:集合A 包含于B,就画条由B指向A箭头;如果C事件较D事件先发生则画条由C指向D箭头建立完这样依赖关系图就可以对其依赖先后关系进行排序比如:将不依赖于其它集合先挑选出来再挑仅依赖于已挑选出集合集合就可将所有集合内部组成有个完整结果再如:把需要先做事件(即不需要依赖于其它事件即可完成事件先挑出来)放... [阅读全文]

数组链表:查找算法集的数组实现和链表实现

// search.cpp : Defines the entry po for the console application.//# \"stdafx.h\"# \"LinkTable.h\"#MAX_KEY 500//------------------------------实现部分----------------------------------/*... [阅读全文]
<< < 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 > >> 共792条 分27页