精华内容
下载资源
问答
  • 程序算法

    万次阅读 2018-07-06 12:54:57
    通过本篇的学习,你将了解到程序算法的概念及其关系】1、什么是计算机程序程序是指完成某些事物的一种既定方式和过程,可以将程序看成是一系列动作的执行过程的描述。在百度百科中,计算机程序被定义为“一组...

    课程导言

    【从本篇开始,就要学习编程知识了。编程,顾名思义就是编写程序。学习之前,要先弄明白什么是程序?解决问题的步骤就是程序吗?算法和程序的关系是什么?本篇将一一给出答案。通过本篇的学习,你将了解到程序及算法的概念及其关系


    1、什么是计算机程序?

    程序是指完成某些事物的一种既定方式和过程,可以将程序看成是一系列动作的执行过程的描述。在百度百科中,计算机程序被定义为“一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上”①。

    在生活中,可以见到许多计算机程序实例。下面,我们看一个生活片段:

    清晨六点十分,伴随着准时而优美的起床铃声,我迈出宿舍,走进了第一餐厅。餐厅里人很多,没有办法,我只买了两个包子做为我的早餐罢了。随着我的餐卡在打卡机上轻轻掠过,六毛钱便不翼而飞了。当我走到超市的时候,突然感觉只吃包子是不是太单调了,于是在超市里拿了一包早餐奶,但付钱的时候却发现超市的收银机坏掉了,没奈何,我只得忍痛把刚拿到手的早餐奶又放了回去,真郁闷!

    在上面的生活片段中,我们能找出几处计算机程序为我们生活服务的痕迹来呢?

    ●  餐厅打卡机

    ●  超市收银机

    前面关于计算机程序的定义提到了“计算机程序是一组执行动作或作出判断的指令并且运行于某种目标体系结构上”。定义有点晦涩难懂,但是只要我们结合实际运行的程序并稍微略加分析,就能够做到了然于心。

    首先考察(餐厅打卡机)

    餐厅打卡机一般采用了射频识别技术,“射频识别(RFID)是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。”②

    打卡机利用射频识别技术将餐卡信息读取到打卡机,由打卡机的处理程序对读取的信息做进一步处理。打卡机中的处理程序就是计算机程序,它需要执行下述动作和指令完成一次打卡操作:

    1)  接受输入的餐费金额

    2)  读取卡内金额

    3)  判断卡内金额是否大于餐费金额

    4)  如果卡内金额小于餐费金额,给出余额不足提示

    5)  如果卡内金额大于餐费金额,将卡内金额减去餐费金额后,回写到卡内

    文字描述其动作或流程不够清晰或理解的话,我们可以用流程图来描述打卡机程序的执行动作或流程:


     

    blob.png

    图 1  餐厅打卡机程序流程图

    采用流程图描述打卡机程序的执行动作,是不是更直观和清晰一些。

    再来考察(超市收银机)

    超市收银机的工作原理类似餐厅打卡机,也是采用射频识别技术读取商品条码,获取商品价格、名称等信息,并由收银机内置的计算机程序对商品价格等信息进行汇总处理,给出所购商品金额等信息。其处理流程要比餐厅打卡机复杂一些,它需要执行下述动作和指令完成一次收费操作:

    1) 读取商品条码

    2) 获取商品价格、名称等信息并显示到收银机屏幕上

    3) 计算所扫商品总金额

    4) 等待操作员按键

    5) 操作员按下“商品”按键,继续读取商品条码

    6) 操作员按下“等金额”或“找零”按键,钱柜自动开启

    其流程图描述如下:


    blob.png

     

    图 2  超市收银机程序流程图

    从餐厅打卡机和超市收银机的内置的程序可以看出,人们使用计算机,就是要利用计算机程序处理各种不同的问题,为了让计算机能够按照我们的意愿去工作,人们在设计计算机时,为计算机提供了一套指令,其中的每一种指令对应着计算机能执行的一个基本动作,为让计算机完成某项任务而编写的指令序列就称为计算机程序。


    2、什么是程序算法?


    我们知道,程序是用来解决问题的,是由多个步骤或过程组成的,这些步骤和过程就是解决问题的算法。

    同学们都下过象棋吧,图3给出的是江湖迷局一书的一个残局棋谱,棋谱给出了每一步棋的走法,按照棋谱规定的步骤行棋,就能破解这个残局,棋谱给出的行棋规则就是算法。

     

    0028.png

                                                 图3  棋谱残局

    去超市购物时,人们经常会对需要购买的同类商品做价格的比较,例如商品A、商品B、商品C在同样质量的情况下,人们会倾向于比较价格,优先购买价格便宜的商品,这个比较过程是在大脑进行的,比较的过程就是排序算法,从三个数中找出最小的数。

    0029.png

    图4 超市购买货物时进行价格比较

    图3的棋谱残局需要走11手,就能破解残局,图4的价格排序也仅需要对3个数进行排序,在大脑比对一下数的大小就完成了。它们都是算法,算法有没有明确的概念和特征呢?

    要想弄清楚算法的概念和特征。先看看算法能给人们的生活带来哪些帮助?前面的棋谱残局和价格比对是生活中的算法,可以帮助人们解决生活中的一些问题,让我们变成象棋高手,或者买到最实惠的商品。

    如果让计算机执行算法,会给人们带来什么帮助呢?在学习方面,把解方程的步骤输入到计算机,可以帮助人们解方程;在工作方面,把英汉词库及检索算法输入到计算机,可以帮助人们自动进行英汉词语翻译;在生活方面,把游戏规则和算法输入到计算机,可以让人们娱乐等等。计算机有了算法,才有了大脑和灵魂,没有算法的计算机,只能是一台机器。

    为了让计算机能够完成前面所说的任务,就需要事先对各类问题进行分析,确定解决问题的具体方法和步骤。再编制好一组让计算机执行的指令,交给计算机,让计算机按人们指定的步骤有效地工作。这些具体的方法和步骤,其实就是一个问题的算法。例如,让计算机帮助我们解方程,就需要把解方程的步骤和方程参数输入到计算机,计算机根据输入的步骤和参数完成方程的求解。

    严格来说,计算机程序是为让计算机完成某项任务而编写的指令序列,指令序列就是解决问题的算法。

    0030.png

    图5 算法的概念

     

    前面理解了算法的概念,在来看看算法有哪些特征。

    算法是由有限多个步骤组成的,它有下述两个基本特征:第一个特征是每个步骤都明确地规定要执行何种操作;第二个特征是每个步骤都可以被人或机器在有限的时间内完成。算法除了上述两个基本特征外,还要具有第三个基本特征:虽然有些步骤可能被反复执行多次,但是在执行有限多次之后,就一定能够得到问题的解答。

    0031.png


    图6 算法的特征

    算法比较抽象,下面讲解一个实际的算法案例,让同学们对算法有个感性认识。对一组无序的数字进行排序,比较经典的排序算法就是冒泡排序。

    冒泡排序是将一组数字多趟顺序比较,一次比较两个数字,如果他们的顺序错误就把他们交换过来,小数或(大数)逐渐往上冒,当再没有需要交换的数字时,说明该组数已经排序完成。

    【例题:冒泡排序算法实例】

    对下面的一组数字利用冒泡排序算法,按照从大到小进行排序。为叙述方便和清晰,在每个数字前加上标号,当比较或交换两个数字时,称为下标①和下标②交换位置,或者下标②与下标③比较大小。

    ① 23,②34,③5,④7,⑤56

    算法具体步骤是从下标①开始,首先比较下标②,如果下标①数值小于下标②数值,则交换两数位置,如果下标①数值大于下标②数值,则不交换,继续比较下标②和下标③两数,依次类推分别比较下标③和下标④、下标④和下标⑤,比较完毕,最小的数下标③5在右侧最前面,完成第一趟比对,然后依次进行第二趟、第三趟、第N趟比对,直到没有数字进行交换,排序完成。

    ●  第一趟比对

    下标①23和下标②34比较大小,下标①23小于下标②34,两数交换位置,交换位置后的数字排列如下:

    ②34,①23,③5,④7,⑤56

    继续比较下标①23和下标③5,因为①23大于③5,因此两数不作交换。

    继续比较下标③5和④7,因为下标③5小于④7,因此两数交换位置,交换位置后的数字排列如下:

    ②34,①23,④7,③5,⑤56

    继续比较下标③5和⑤56,因为下标③5小于⑤56,因此两数交换位置,交换位置后的数字排列如下:

    ②34,①23,④7,⑤56,③5

    ●  第二趟比对

    下标②34和下标①23比较大小,下标②34大于下标①23,因此,两数位置不变。

    继续比较下标①23和下标④7,因为①23大于④7,因此两数不作交换。

    继续比较下标④7和下标⑤56,因为④7小于⑤56,因此两数交换位置,交换位置后的数字排列如下:

    ② 34,①23,⑤56, ④7, ③5

    继续比较下标④7和下标③5,因为④7大于③5,因此两数不作交换。

    ●  第三趟比对

    下标②34和下标①23比较大小,下标②34大于下标①23,因此,两数位置不变。

    继续比较下标①23和下标⑤56,因为①23小于下标⑤56,因此两数交换位置,交换位置后的数字排列如下:

    ②34,⑤56,①23,④7,③5

    继续比较下标①23和下标④7,因为①23大于下标④7,因此,两数位置不变。

    继续比较下标④7和下标③5,因为④7大于下标③5,因此,两数位置不变。

    第三趟比对完成后的排序:

    ②34,⑤56,①23,④7,③5

    ●  第四趟比对

    下标②34和下标⑤56比较大小,下标②34小于下标⑤56,因此两数交换位置,交换位置后的数字排列如下:

    ⑤56, ②34,①23,④7,③5

    第四趟首次比对,排序已经完成。

    冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,下一次继续这个过程,直到所有数据元素都排好序。

    算法是解决问题的步骤,在前面也谈到了程序是执行过程的描述,那么,算法和程序是什么关系呢?

    先请同学们思考一个计算长方形面积的问题,并给出算法。

    第一步,设置num1和num2两个变量,接收用户输入的长度和宽度,并存储到num1和num2两个变量;

    第二步,判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;

    第三步,计算num1和num2的乘积,并将乘积结果存储到result变量;

    第四步,显示result变量的值到屏幕。

    算法非常简单,四个步骤,如何让计算机执行这个算法呢?

    实现算法的伪代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Begin(算法开始)
          声明  num1、num2;
          输入  num1、num2;
          IF num1 <= 0  || num2 <= 0
          {
             Print(“输入的长度和宽度不能小于 0 ”);
            退出程序
          }
          result = num1 * num2;
          Print  result;
    End (算法结束)

    要让计算机执行算法,就必须要把算法用编程语言编写出来,如Java语言,如实现计算长方形面积算法的伪代码,伪代码是一种算法描述语言,可以很容易地转换为编程语言,如Java、C语言等。可见,程序是算法的实现,算法通过某一种编程语言实现后,就是程序。


    ■ 课程小结

    1、人们使用计算机,就是要利用计算机解决现实世界的问题。为了让计算机能够按照人们的意愿去工作,需要为计算机提供一组指令,人们把解决问题的步骤用指令来描述,并把指令输入到计算机中,计算机就会按照指令来工作,这些描述工作步骤的指令就是程序。

    2、算法是解决问题的思路和步骤,这些步骤是有限的,每个步骤都可以在有限时间内由人或计算机完成,并能输出执行后的结果,所有步骤执行完毕后,一定能够得到算法的最终解答。

    3、算法与程序的关系是相互依附的关系,算法要在计算机上执行,必须将算法的步骤用编程语言的语法描述出来,编译通过后,方可在计算机上执行。用编程语言语法描述算法的过程就是编写程序,编写的程序编译通过后,就是可以在计算机上执行的程序了。


    ■ 思考与练习

    1、请列举一些你在生活中经常使用的计算机程序。

    2、计算机程序和算法有什么区别?

    3、对下面的一组数字用冒泡排序算法进行排序,请用文字详细描述排序过程。

    36,29,101,12,33

    4、现实问题模拟:《停车场的看门人》   

    某大型停车场对于进入该场地的车辆有如下的规定: 

    (1)进入该停车场的车辆必须为客运车辆,货运车辆谢绝入内。

    (2)如果该车的乘员数量小于等于4人,则收费五元。

    (3)如果该车的乘员数量大于4人,则收费八元。

    作业要求:请根据该停车场的规定,用文字给出判断进入该场的车辆是否符合规定,应该收费多少的算法。

    5、请用文字给出一个计算长方形面积问题的算法。

    要求:接受用户输入的长度和宽度,输入的长度和宽度不能为零,如果为零,提示用户重新输入,最后将计算结果显示到显示器上。


    展开全文
  • 算法程序设计

    千次阅读 2018-07-21 18:35:40
    内容:1、简要介绍程序算法程序的关系;  2、了解结构化程序设计;  3、构建对称方阵。 1、什么是程序?  所谓程序,就是一组计算机能识别与执行的指令。每一条指令使计算机执行特定的操作,用来完成一定...

    内容:1、简要介绍程序,算法与程序的关系;

               2、了解结构化程序设计;

               3、构建对称方阵。


    1、什么是程序?

          所谓程序,就是一组计算机能识别与执行的指令每一条指令使计算机执行特定的操作,用来完成一定的功能。

          计算机的一切操作都是由程序控制的,离开了程序,计算机将一事无成。从这个意义来说,计算机的本质是程序的机器,程序算机的灵魂。


    2、程序与算法是什么关系?

         算法是程序的核心。程序是某一算法用计算机程序设计语言的具体实现。事实上,当一个算法使用计算机程序设计语言描述时,就是程序。具体来说,一个算法使用C语言描述,就是C程序。

        程序设计的基本目标是应用算法对问题的原始数据进行处理,从而解决问题,获得所期望的结果。在能实现问题求解的前提下,要求算法运行的时间短,占用系统空间小。 

        而初学者往往把程序设计简单地理解为编写一个程序,这是不全面的。程序设计反映了利用计算机解决问题的全过程,通常先要对问题进行分析并建立数学模型,然后考虑数据的组织方式,设计合适的算法,并用某一种程序设计语言编写程序实现算法。

    显然,一个程序包括对数据的描述与对运算操作的描述。

    著名计算机科学家尼克劳斯.沃斯就此提出一个公式:

                      数据结构+算法=程序

    概述:数据结构是对数据的描述,而算法是对运算操作的描述。


    3、结构化程序设计

    结构化程序设计的基本要点:

    (1)、自顶向下,逐步求精;

    (2)、模块化设计;

    (3)、结构化编码。

          自顶向下是指对设计求解的问题要有全面的理解,从问题的全局入手,把一个复杂的问题分解成若干个相互独立的子问题,然后对每个子问题再作进一步的分解,如此重复,直到每一个子问题都容易解决为止。

          逐步求精是指程序设计的过程是一个渐进的过程,先把一个子问题用一个程序模块来描述,再把每个模块的功能逐步分解细化为一系列的具体步骤,直至能用某种程序设计语言的基本控制语句来实现。

          逐步求精总是和自顶向下结合使用,将问题求解逐步具体化的过程,一般把逐步求精看作自顶向下设计的具体体现。

          模块化是结构化程序设计的重要原则。所谓的模块化就是把纷繁复杂的主程序按照功能来划分为若干个小程序,用来实现特定的功能。子模块也可以划分为更为详细的子程序,由此便形成了程序的模块化结构


    4、结构化程序设计的基本结构

      算法是由一系列操作组成的,这些操作之间的执行次序就是控制结构

      计算机科学家Bohm和Jacopini证明了这样的事实:

      任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种结构组合而成。

     因此,这三种结构是结构化程序设计基本也是必须采用的结构。


    ps:本博客内容主要源于杨克昌主编清华大学出版的《计算机常用算法与程序设计案例教程》。    

    谢谢关注!!!

          

    不忘初心,方得始终!

     

     

                                       

     

         

    展开全文
  • DEMATEL算法程序

    千次阅读 多人点赞 2019-01-11 11:23:11
    DEMATEL算法程序 写了一个简单对的DEMATEL算法程序 clear;clc; %% 计算直接关联矩阵 w=[1,2,3,4,5,6]; %整体权值向量 m=length(w); B=zeros(m); %初始化直接关联矩阵 for i=1:m for j=1:m B(i,j)=w(i)/w(j); B...

    DEMATEL算法程序
    写了一个简单的DEMATEL算法的程序

    clear;clc;
    %% 计算直接关联矩阵
    w=[1,2,3,4,5,6]; %整体权值向量
    m=length(w);
    B=zeros(m); %初始化直接关联矩阵
    for i=1:m
        for j=1:m
            B(i,j)=w(i)/w(j);
            B(i,i)=0
        end
    end
    %% 归一化
    X=mapminmax(B,-1,1);  %归一化直接关联矩阵,归一化至[-1,1]
    T=X*inv(eye(m)-X); %全关联矩阵
    %% 建立因果关系图
    for i=1:m
        for j=1:m
            D(i)=sum(T(i,:));  % 全关联矩阵的各行之和-被影响度
            R(j)=sum(T(:,j));  % 全关联矩阵的各列之和-影响度
        end
    end
    f=R+D; % 中心度
    r=R-D; % 原因度
    
    展开全文
  • diff程序算法

    千次阅读 2010-02-09 21:46:00
    diff程序很重要,linux中的源代码补丁是diff作出来的,diff在比较两个文本文件的不同方面很高效,它是基于行的,diff会将两个文件按照行分成若干部分,然后计算这些行每一行的校验码,之后的问题就是比较这两个...

    diff程序很重要,linux中的源代码补丁都是diff作出来的,diff在比较两个文本文件的不同方面很高效,它是基于行的,diff会将两个文件都按照行分成若干部分,然后计算这些行每一行的校验码,之后的问题就是比较这两个文件的所有行的校验码序列的不同了,这就把问题归结为了序列比对,diff用的是动态规划算法,动态规划和贪心算法相似,但是其思想却是相反的,贪心算法保证每一步都是最小代价的,但是不能保证最终代价最小,而动态规划每一步什么也不知道,它从起点开始,只管局部地按照要求将无所谓的结果铺满全局,然后回溯,在这些繁复的数据之间找到一条从开始到最后的一条路径,为何这条路径就是结果呢?因为每一步都符合要求,所以无论如何最终随便一条按照要求的回溯路线都符合要求,可是可以看出,这条回溯路线的结果是一个正确结果但是却不是唯一的结果,正所谓条条大道通罗马。和贪心算法一样,随便的一条回溯路线不一定是最佳的,寻找最佳结果还要靠别的机制,贪心算法比动态规划好的就是靠近最佳结果的几率更大些,而动态规划只是一个结果,它旨在找到一种方案,然而动态规划有自己的优势,就是如果你的模型建的好,那么它可以在每一步很轻松的情况下达到同样的效果,关键就是建模。

    diff的算法就是一个动态规划的例子,比如一个校验码序列P有M个元素,另一个Q有N个元素,它构建一个(M+1)*(N+1)的矩阵,然后引出一条蛇,蛇头勇往直前,呵呵,其实就是往矩阵里面的元素里填数字,从(0,0)一直到(M+1,N+1)的大方向填数字,保证所填的数字单调增长,也就是填入的数字不能比它的参照值小,将要填入的是Vi,j,那么它的参照值就是Vi-1,j-1,Vi-1,j和Vi,j-1,具体怎么做到呢?V值的增加只有一种可能性就是在Pi和Qj相等的情况下,其它情况下都是不增加的,所以Vi,j的值就是三者中最大的,Vi,j的参考值不是有三个吗?那么这种增加的情况和哪个参考值有关联呢?事实上是和对角的那个,也就是和Vi-1,j-1,仔细想一下,只有i和j同步增长才是P和Q的同步推进引起的比较,i和j的单独推进只是P序列或者Q序列的单独向前推进,也就是说在序列比对的时候就是一个gap,这种方式填表很简单,只要有左上,上,左三个值就可以求出当前的这个值,每一步都是那么的局部,最终填完后,找到最大的这个值的位置,很显然是最右下角的这个,然后回溯,怎么回溯呢?一个一个的找到当前值的前驱值所在的位置就可以了,最后将回溯的道路进行标注,得到了P和Q的两条路径,每写一个字符,如果路径和字符序列的方向垂直,那么就写一个空格,最终的结果就是diff的结果,很巧妙吧。不过以上的方式回溯写出来的路径不止一条,每一条路径都是一个结果。

    我们可以看出,每一步都是机械的既定规律的模仿,没有什么技巧可言,和贪心算法几乎一样,都是局部的,但是diff算法的每一步并没有和全局的联系起来,知道完成了整个填充之后才在回溯的时候和全局的结果相联系,而贪心算法的每一个都记着自己在干什么,不需要回溯,这个意义上可以看出diff算法的填充过程更像是一个规整过程而不是一个十足的计算过程,贪心算法显得一直很努力,而diff这里所用的算法会耍一些技巧,你不是看不出我在做社么吗,别急,等会我回溯,一条路径被勾勒出来了。

    展开全文
  • 算法程序的区别与联系

    万次阅读 多人点赞 2019-05-20 14:54:55
    (3)程序并不满足算法所要求的特征,例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。 (4)一个算法可以用不同的编程语言编写出不同的程序。 (5)算法是解决问题的步骤;程序算法的代码实现。 ...
  • 爬山算法matlab程序

    热门讨论 2010-08-30 23:14:12
    里面是用matlab写的爬山算法程序,对于初学算法的人有帮助,想用的下载看看。
  • 经典SVM算法matlab程序

    热门讨论 2011-10-19 11:32:35
    经典SVM算法matlab程序,用于各种利用MATLAB对数据进行SVM仿真的实验。
  • 广度优先算法、最佳优先算法、A*算法寻路程序一个用三种算法寻路的程序,版本VS2015,截图如下:广度优先算法(迷宫为自绘):最佳优先算法:A*算法寻路程序:下载链接:...
  • 基本蛙跳算法MATLAB程序

    热门讨论 2011-01-07 21:06:31
    蛙跳算法 MATLAB程序 用MATLAB编写的基本蛙跳算法
  • 这些知识和技巧既是高等院校“算法与数据结构”课程的主要内容,也是国际青少年信息学奥林匹克(IOI)竞赛和ACM/ICPC国际大学生程序设计竞赛中所需要的。书中分析了相当数量的问题。内容丰富,分析透彻,启发性强,...
  • 算法 - 程序的灵魂

    千次阅读 2020-05-28 17:18:47
    每一行代码是改变世界的能量,算法程序具有灵魂
  • 算法

    万次阅读 2018-02-08 00:13:09
    1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出...
  • K-SVD算法程序

    热门讨论 2012-06-26 10:43:05
    这是K-SVD算法MATLAB程序,里面包含了几个追踪算法,和一些子程序,希望对于研究字典的朋友有所帮助。
  • apriori算法MATLAB程序

    热门讨论 2010-10-10 17:27:56
    用MATLAB软件实现关联规则中频繁项集挖掘算法Apriori 调试可用 附带测试数据集 程序完整
  • 程序员那些必须掌握的排序算法(上)

    万次阅读 多人点赞 2019-08-17 16:03:39
    不同的人有不同的答案,而事实上,很多公司算法有一定的要求,有些公司直接在面试的时候便会要求面试者手写算法题。这就对程序员的技术要求产生了很大的考验,所以面对如今的大环境,我们必须掌握算法,才能在...
  • 十大程序基础算法

    千次阅读 2016-04-07 09:48:09
    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο...
  • 人工蜂群算法matlab程序

    热门讨论 2013-05-27 16:04:28
    人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值...
  • MWC飞控算法详细程序

    千次下载 热门讨论 2011-11-21 17:20:44
    这是从MWC官网下下来的程序,里面有MWC飞控最新的算法程序,很经典,可以借鉴使用!
  • Dijkstra算法的C语言程序

    千次阅读 多人点赞 2017-02-04 23:21:53
    Dijikstra算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。该算法是由荷兰计算机科学家迪杰斯特拉于1959年提出的。 程序来源:Dijkstra's Algorithm。 百度百科:Dijkstra算法。 ...
  • 蒙特卡洛算法和matlab程序

    热门讨论 2009-10-30 11:19:04
    蒙特卡洛算法和matlab程序 随机变量的抽样 离散系统的模拟
  • Kruskal算法的C语言程序

    千次阅读 2017-02-06 23:14:24
    Kruskal算法是有关图的最小生成树的算法。Kruskal算法是两个经典的最小生成树算法之一,另外一个是Prim算法程序来源:Kruskal's Algorithm。 百度百科:Kruskal算法。 维基百科:Kruskal's Algorithm。 C语言...
  • ssim的MATLAB算法程序

    热门讨论 2010-01-30 20:49:41
    ssim 图像质量评价 图像处理 ssim的MATLAB算法程序 ssim的MATLAB算法程序
  • 程序的灵魂——算法

    千次阅读 2014-07-14 19:56:19
    软件工程的思想告诉我们,软件包含两部分内容,一部分是计算机可执行的程序和相关的数据,一部分是与程序及数据有关的描述性文档。也即:软件=程序和数据+文档。对于一个毫无开发经验,刚开始学习计算机编程的人而言...
  • 程序=数据结构+算法

    千次阅读 热门讨论 2017-09-04 16:56:18
    小编认为是用为了计算机解决生活中的问题,而数据结构和算法的出现是为了更高效的提高程序执行的效率。但是前提是得合理使用。 为什么要学习数据结构和算法呢?最直观的是money,更深层次是我们要学习他们里面的...
  • 算法程序的区别

    万次阅读 2018-03-11 23:13:12
    算法是指解决问题的一种方法或一个过程。算法是若干指令的有穷序列,满足性质:(1)输入:...程序算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)。例如操作系统,是一个在无限循环中执行的程序,...
  • 逆向某微信小程序参数签名算法

    千次阅读 2020-05-29 18:06:07
    获取微信小程序压缩包 某小程序请求中有sign参数,包含在url或header中..... 打开微信小程序时,微信会把小程序压缩包(后缀名.wxapkg)下载到本地; 从目录 /data/data/com.tencent.mm/MicroMsg/{数字串}/...
  • 比较常用的程序算法

    千次阅读 2018-08-14 19:42:22
    在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法...
  • 数据结构中的算法都需要实现吗?

    千次阅读 2013-10-09 19:40:43
    【问】 老师你好,学习数据机构,是不是书上的每一个算法都程序设计语言在计算机实现?还是只理解算法就可以?【答】 每一个算法都程序设计语言在计算机实现?不必绝对这样做,你的时间需要有效利用,实现仅...
  • 神经网络算法程序

    2007-10-04 08:23:28
    神经网络算法程序,如SOM、HOPFIELD、CPN、BPN、BOLTZMAN、ART、ADALINE,同时提供针对不同算法的演示源程序
  • 蚁群算法演示程序

    2007-09-14 20:59:47
    相当不错的算法演示程序,帮你理解蚂蚁算法的基本原理.没有深奥的数学公式,呵呵

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,466,399
精华内容 586,559
关键字:

任何程序都需要算法吗