课本上有个例子的。你按照他的流程走一遍你就懂了。有的算法过程并不复杂,只是判断条件变得复杂了一些。
算法分析中的每一个步骤,都可以对应地转换成C语言程序中的某一行或者几行代码,我们编写C语言程序代码的过程,实际上就是用C语言这种编程语言来表达算法步骤的过程。我们就像一位翻译官一样,将计算机看不懂的,用自然语言表达的算法步骤,翻译为计算机看得懂的,用编程语言(例如,C语言,也可以是其他编程语言)表达的,并可以被编译执行的源程序代码。
❷ "从抽象的算法分析到具体的编程,CS专业下分五个方向:软件工程,人工智能..."
From the abstract Algorithm analysis to the specific programming, specialization in CS is divided in the following five categories : software engineering, artificial intelligence....
用divided into five categories。要翻译意思,不只是单词。
❸ 如何通过聚类或其他算法实现一组名词的抽象,也可以说是关键词的提取
public class Main_UI4 {
private static String[] names=new String[]{"组织机构代码","公司代码","学校代码","车辆牌照","公司牌照","学生姓名","道路运政"};
public void fun(String xname){
System.out.println(xname+":");
for(String name:names){
if(name.indexOf(xname)>0){
System.out.print(name+"\t");
}
}
System.out.println();
}
public static void main(String[] args) {
new Main_UI4().fun("代码");
new Main_UI4().fun("牌照");
}
}
❹ 什么是算法
一、什么是算法
算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。时间复杂度用“O(数量级)”来表示,称为“阶”。常见的时间复杂度有: O(1)常数阶;O(log2n)对数阶;O(n)线性阶;O(n2)平方阶。
算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
[font class="Apple-style-span" style="font-weight: bold;" id="bks_etfhxykd"]算法 Algorithm [/font]
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。
一个算法应该具有以下五个重要的特征:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
算法的设计要求
1)正确性(Correctness)
有4个层次:
A.程序不含语法错误;
B.程序对几组输入数据能够得出满足规格要求的结果;
C.程序对精心选择的、典型的、苛刻的、带有刁难性的几组输入数据能够得出满足规格要求的结果;
D.程序对一切合法的输入数据都能产生满足规格要求的结果。
2)可读性(Readability)
算法的第一目的是为了阅读和交流;
可读性有助于对算法的理解;
可读性有助于对算法的调试和修改。
3)高效率与低存储量
处理速度快;存储容量小
时间和空间是矛盾的、实际问题的求解往往是求得时间和空间的统一、折中。
算法的描述 算法的描述方式(常用的)
算法描述 自然语言
流程图 特定的表示算法的图形符号
伪语言 包括程序设计语言的三大基本结构及自然语言的一种语言
类语言 类似高级语言的语言,例如,类PASCAL、类C语言。
算法的评价 算法评价的标准:时间复杂度和空间复杂度。
1)时间复杂度 指在计算机上运行该算法所花费的时间。用“O(数量级)”来表示,称为“阶”。
常见的时间复杂度有: O(1)常数阶;O(logn)对数阶;O(n)线性阶;O(n^2)平方阶
2)空间复杂度 指算法在计算机上运行所占用的存储空间。度量同时间复杂度。
时间复杂度举例
(a) X:=X+1 ; O(1)
(b) FOR I:=1 TO n DO
X:= X+1; O(n)
(c) FOR I:= 1 TO n DO
FOR J:= 1 TO n DO
X:= X+1; O(n^2)
“算法”一词最早来自公元 9世纪 波斯数学家比阿勒·霍瓦里松的一本影响深远的着作《代数对话录》。20世纪的 英国 数学家 图灵 提出了着名的图灵论点,并抽象出了一台机器,这台机器被我们称之为 图灵机 。图灵的思想对算法的发展起到了重要的作用。
算法是 计算机 处理信息的本质,因为 计算机程序 本质上是一个算法,告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。 一般地,当算法在处理信息时,数据会从输入设备读取,写入输出设备,可能保存起来以供以后使用。
这是算法的一个简单的例子。
我们有一串随机数列。我们的目的是找到这个数列中最大的数。如果将数列中的每一个数字看成是一颗豆子的大小 可以将下面的算法形象地称为“捡豆子”:
首先将第一颗豆子(数列中的第一个数字)放入口袋中。
从第二颗豆子开始检查,直到最后一颗豆子。如果正在检查的豆子比口袋中的还大,则将它捡起放入口袋中,同时丢掉原先的豆子。 最后口袋中的豆子就是所有的豆子中最大的一颗。
下面是一个形式算法,用近似于 编程语言 的 伪代码 表示
给定:一个数列“list",以及数列的长度"length(list)" largest = list[1] for counter = 2 to length(list): if list[counter] > largest: largest = list[counter] print largest
符号说明:
= 用于表示赋值。即:右边的值被赋予给左边的变量。
List[counter] 用于表示数列中的第 counter 项。例如:如果 counter 的值是5,那么 List[counter] 表示数列中的第5项。
<= 用于表示“小于或等于”。
❺ 数学抽象的基本形式有哪些
数学抽象的四种形式:
1、实物层面的抽象
这个层面的抽象,实际上是立足于已有的生活经验和社会现实,进行第一步抽象,即以实物为对象进行抽象,到刚刚超越实物而尚未完全脱离实物即结束。例如:在七年级上册《有理数的乘方》这一节中,用文字和图片一起呈现出细胞分裂的过程,细胞每过30min便由1个分裂成2个,经过5h,这种细胞由1个能分裂成多少个?从这样一个有趣的过程中抽象出数学问题,能够很快的激发学生的学习兴趣。在七年级上册《丰富的图形世界》这一节中,教科书提供了几幅图片,引导学生感受图形世界的多姿多彩,并且通过给出各种实物模型,让学生认识圆柱、圆锥、正方体、长方体和球这五种几何体。在八年级下册《图形的旋转》中,呈现出一幅旋转的摩天轮,瞬间把学生带入旋转的情境中去感受旋转,继而思考什么样的图形运动可以称之为图形的旋转。这些都是典型的借助“实物”的直接抽象。在这些过程中,通过设计好的情境,加上教师的有意引导,学生在仔细观察图片中物体的基础上,思考有理数的乘方、几何体、图形的内在本质属性,形成自己对这些知识的初步认识。
2、半符号层面的抽象
这个阶段实际上是简约阶段的一种,是建立在实物抽象的基础之上的进一步发展。此时,有关的属性已经从实物中提取出来、抽象出来,但是并没有完全脱离实物,或者更确切的说,是部分属性脱离了实物,而其中的关键属性已经初见端倪。例如:在七年级下册《单项式乘多项式》这一节中,教科书要求在一幅长x米宽mx米的画左右两边各留1/8x米的空白,求画的面积是多少?接着展示了两种算法,通过对同一面积的不同表达,可以得到: x(mx-1/4x)=mx2-1/4x2 此时单项式乘多项式的有关属性已经呈现出来。在《图形的全等》这一节中,在学生已经了解了什么是全等图形之后,教科书呈现出多个形态各异的图形,要求学生从中找出全等图形,这也是实物直观层面的第二次抽象。在这个过程中,全等图形是能够完全重合的图形这一关键属性已经凸显出来,学生要做的便是依据全等图形的概念来找出能够完全重合的图形。
3、符号层面的抽象
这个层面的抽象属于数学抽象的符号阶段,具有典型的阶段性、层次性。准确的说,符号层面的抽象已经去掉了具体的内容,利用概念、图形、符号、关系表述包括已经简约化了的事物在内的一类事物。例如:在七年级上册《合并同类项》这一节中,观察四组代数式,找出它们的共同特点,然后总结出同类项的概念,并进而得到合并同类项法则。在这个过程中,学生在观察代数式和探索合并同类项及其合并同类项法则的同时,尝试着用文字去表述自己的发现,这就是在进行符号层面的抽象。在八年级上册《勾股定理》的教学上,首先通过探索活动让学生们初步感受直角三角形三边长之间的特殊关系,接着引导学生用语言准确表述这样一种特殊关系,最后赋予直角三角形三边以符号表示,并用符号语言来描述出勾股定理。这样一种礼仪概念、图形、符号表述一类事物的方式就是典型的符号层面的抽象。在这个过程中,学生首先要通过观察“邮票”这一实物对研究勾股定理的这个基本图形形成一个直观认识,在经历分析、猜想、尝试等过程探求两个小直角三角形面积与大直角三角形面积之间的数量关系的方法,最后通过分析、推理得到直角三角形三条边长之间的特殊关系。这样一个过程能够让学生在经历勾股定理的探索过程后,更深刻的认识、理解这个定理。在九年级上册《相似多边形》这一节总,在学生已对相似图形有了最初的直观感受后,通过观察、分析五组形态各异的图形的内在共同特征,总结归纳出相似图形的定义,学生从初步认识相似图形,到深入了解相似图形,这整个过程都参与其中,十分有利于学生对相似图形的全面理解。
4、形式化层面的抽象
这个层面的抽象属于数学抽象的普适阶段,即通过假设和推理建立法则、模式或者模型,并能够在一般意义上解释具体事物。这个阶段的抽象在中小学也是时常存在的。例如:在七年级下册《二元一次方程组》这一节中,基于上一节《二元一次方程》已经完成了从“一元”到“二元”、新的数学模型的建立,该节内容的学习主要集中在类似于“鸡兔同笼”问题的解决上。建立模型后,将模型运用到一般问题的解决上,这一过程是典型的形式化抽象。再比如说,在九年级下册圆周角定理的呈现上,通过猜想、推理得到圆周角与圆心角之间的半倍关系,继而引导学生运用这一关系去解决一些具体的问题。在这一过程中,学生首先要形成对圆周角概念的认识,再在测量同一圆的圆心角和圆周角度数的基础上,大胆猜想圆心角与圆周角的数量关系,接着在教师的引导下逐步形成证明这一关系的思想和方法,最后能够将这一定理熟练地运用到解决实际问题当中。在九年级上册《相似三角形的性质》这一节中,通过深入分析探索得到证明相似三角形、相似多边形的周长比的方法,继而引导学生运用所得方法去尝试解决相似三角形、相似多边形的面积比、高比等,在这个过程中,学生不仅学到解决问题的方法,还知道了将习得的方法用在其他问题的解决上,符合新课标提出的重视“过程与方法”的目标。
总体来看,现行初中教材中情境中采用最多的是实物层面的抽象,正文中采用最多的是符号层面的抽象,练习中采用最多的是实物半符号层面的抽象,数学活动中最多采用的是形式化层面的抽象。
❻ 什么算法是不可逆加密 像 MD5一样的算法。。。。。。 不过 有点抽象 能
一个数除以 另一个数再把余数丢掉,得到商,从最后得到的商没有办法算出被除数。
❼ 式设计一个繁殖的数据抽象算法流程图并写出电脑语言伪码。
这个其实就是Fibonacci数的求解
这个数的递归式是这样的
xn+xn+1 = xn+2
有了递归式你大概知道怎么搞了吧。
伪码我就不写了,写c的吧
int Fibonacci(int x){
int x=1, x1=1 ,x2 , i;
for(i=2 ; i<=x ; ++i){
x2 = x+x1;
x = x1;
x1 = x2;
}
return x2;
}
❽ java抽象类及抽象方法的概念
protected final double compare(int i, int j) {
return values[i]-values[j];// 比较i及j的两个数组元素的大小
}
protected final void swap(int i, int j) {// 交换下标为i及j的两个数组元素的位置
double k=values[i];
values[i]=values[j];
values[j]=k;
}