❶ 什么叫算法软件,逻辑软件,系统软件
摘要 就描述,实际都差不多。只不过是一个分类的说法。
❷ 算法工程师和软件工程师相比较哪个发展会好些
我认为算法工程师好些
因为现在软件工程师超多,做1个软件有很多软件辅助,非常简单(比如:VB 傻瓜都会)。再说你做1个软件不到1个月就会落后别人,你想象以前好多软件,现在都不用了!
而算法工程师全靠能力,思维,很难学习,但学会的你不仅可以编软件,还可以搞黑客,如果你是学生,你参加了这种竞赛可以保送上大学,免费出国!
❸ 计算机算法与程序的关系
这个关系复杂,几乎每个程序都与算法有关系,如果是学习C语言,算法很重要的
❹ 什么是软件算法
程序算法是对特定问题求解过程的描述,是指令的有限序列,每条指令完成一个或多个操作。通俗地讲,就是为解决某一特定问题而采取的具体有限的操作步骤。
程序算法具有以下特性
(1)有穷性:在有限的操作步骤内完成。有穷性是算法的重要特性,任何一个问题的解决不论其采取什么样的算法,其终归是要把问题解决好。如果一种算法的执行时间是无限的,或在期望的时间内没有完成,那么这种算法就是无用和徒劳的,我们不能称其为算法。
(2)确定性:每个步骤确定,步骤的结果确定。算法中的每一个步骤其目的应该是明确的,对问题的解决是有贡献的。如果采取了一系列步骤而问题没有得到彻底的解决,也就达不到目的,则该步骤是无意义的。
(3)可行性:每个步骤有效执行,得到确定的结果。每一个具体步骤在通过计算机实现时应能够使计算机完成,如果这一步骤在计算机上无法实现,也就达不到预期的目的,那么这一步骤是不完善的和不正确的,是不可行的。
(4)零个或多个输入:从外界获得信息。算法的过程可以无数据输入,也可以有多种类型的多个数据输入,需根据具体的问题加以分析。
(5)一个或多个输出:算法得到的结果就是算法的输出(不一定就是打印输出)。算法的目的是为解决一个具体问题,一旦问题得以解决,就说明采取的算法是正确的,而结果的输出正是验证这一目的的最好方式。
算法的复杂度
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
时间复杂度
算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
空间复杂度
算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
❺ 算法和软件的关系,程序员应该学习哪些算法
一.基本算法:
枚举. (poj1753,poj2965)
贪心(poj1328,poj2109,poj2586)
递归和分治法.
递推.
构造法.(poj3295)
模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
图的深度优先遍历和广度优先遍历.
最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成树算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓扑排序 (poj1094)
二分图的最大匹配 (匈牙利算法) (poj3041,poj3020)
最大流的增广路算法(KM算法). (poj1459,poj3436)
三.数据结构.
串 (poj1035,poj3080,poj1936)
排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)
简单并查集的应用.
哈希表和二分查找等高效查找法(数的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
哈夫曼树(poj3253)
堆
trie树(静态建树、动态建树) (poj2513)
四.简单搜索
深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.动态规划
背包问题. (poj1837,poj1276)
型如下表的简单DP(可参考lrj的书 page149):
E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159)
C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)
六.数学
组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
数论.
1.素数与整除问题
2.进制位.
3.同余模运算.
(poj2635, poj3292,poj1845,poj2115)
计算方法.
1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)
七.计算几何学.
几何公式.
叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)
多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)
(poj1408,poj1584)
凸包. (poj2187,poj1113)
中级(校赛压轴及省赛中等难度):
一.基本算法:
C++的标准模版库的应用. (poj3096,poj3007)
较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)
二.图算法:
差分约束系统的建立和求解. (poj1201,poj2983)
最小费用最大流(poj2516,poj2516,poj2195)
双连通分量(poj2942)
强连通分支及其缩点.(poj2186)
图的割边和割点(poj3352)
最小割模型、网络流规约(poj3308)
❻ 硕士研究算法和做软件开发,哪个更有前途
还是软件开发好些,毕竟这个是有机会获得股份以及可能成为BOSS的行当
❼ 算法与程序有什么异同
用一句说话答你的话, 那就是 : 算法只是程序中可以处理的其中一件事.
算法, 基本上就是以数学的形式去对一个 "模式" 的模术, 例如最简单的毕氏定理 a^2 + b^2 = c^2 . 当然还有更多更复杂的算法, 例如 OpenCV 对面容辨识的各种算法, 从距离, 比例, 颜色深浅来定位那里是双眼, 嘴巴, 人面... 但总言之, 算法离不开 f(x) = ..... 这个框架. 你可以从算法中求 x 等于甚么, 又或者从已知的 x 去找出算法中其他的未知数.. 算法, 就是数学
程序, 基本有: 输入 -> 处理 -> 输出 -> 存取档案这几个部份, 当中便有豪多样的可能性, 光是输入, 就已可分由用者输入, 从档案输入, 甚至... 从算法中输入!! 又来到处理, 算法所不能做到的的一件事, 就是程序可以做出逻辑的分支, if ... elseif... else... 整个流程可以随意跳跃...
最后一句就是, 算法是死的, 程序是活的.