APP下载

计算机算法设计及数据结构离散性研究

2019-09-10李丹苏天路

现代信息科技 2019年22期
关键词:数据结构

李丹 苏天路

摘  要:随着社会的不断发展,计算机信息化技术的应用越来越广泛,而算法设计作为计算机系统运行的基础,可以有效利用数学方法将信息数据转换为系统可以识别的编码程序,以此完成相关操作和运行。而对于计算机算法设计而言,除了要掌握规范的方法以外,还需处理好离散性的数量关系,这对于算法设计以及计算机系统结构本身是同等重要的,必须要给予足够的重视。鉴于此,文章重点就计算机算法设计及数据结构离散性相关问题进行了研究分析,以供参考和借鉴。

关键词:算法设计;数据结构;离散性

中图分类号:TP311.12;TP301.6       文献标识码:A 文章编号:2096-4706(2019)22-0089-03

Abstract:With the continuous development of the society,the application of computer information technology is more and more extensive,and the algorithm design as the basis of the computer system operation,can effectively use mathematical methods to convert information data into the system can identify the coding program,to complete the relevant operation and operation. As for the design of computer algorithm,in addition to mastering the standard method,it is also necessary to deal with the quantitative relationship of discreteness,which is equally important to the design of algorithm and the structure of computer system itself,and it must be paid enough attention to. In view of this,this paper focuses on the research and analysis of computer algorithm design and data structure discreteness for reference.

Keywords:algorithm design;data structure;discreteness

0  引  言

所謂算法,广义是指通过系统规范的方法或指令,以解决实际当中问题的一种策略机制。而对于计算机算法而言,其通常是指利用相应的数学方法,将信息数据及信号转换为计算机系统可以识别的一类程序编码,以实现对系统的控制。对于计算机系统当中一些流程型的程序而言,对算法设计的要求并不是特别严格,但是在一些智能化、信息化要求较高的程序中,对于算法设计的要求还是比较严格的,例如人工智能、人机交互、云计算以及虚拟现实等,这些程序给计算机算法设计提出了更高的要求,需要加以重视。

1  计算机算法的应用现状

1.1  云计算

云计算作为信息化时代下一种自动化的运行模式,对于计算机算法的要求相对严格。算法在云计算中的应用一方面可以提升网络服务的便利性,另一方面还可以实现服务功能的有效拓展。相比其他的模式而言,云计算不仅可以有效提升数据处理的效率和质量,而且其投入成本相对较低,可以满足不同用户的现实需求。在实际的云计算算法设计当中,其可以实现信息数据的合理化分配,以此为企业单位发展提供完整的数据信息支持,同时也能节省企业的成本投入。伴随着信息化水平的不断提升,以及算法设计规范性和可靠性的提升,使得云计算的存储容量、数据处理能力进一步提升,同时也有效优化了其服务质量。

1.2  美颜软件

随着信息化水平的进一步提升,智能手机美颜功能可谓是越发强大。其中,美图秀秀作为手机美颜软件的一种,要想实现其美颜效果,首先就需要通过计算机算法设计,实现对人脸的识别和修复。在此过程中需要注意的是,美颜后的图片不能与原始人脸有很大的区别,所以对于算法的要求相对严格,在实际的算法设计中需要考虑瘦脸、美肤等多种功能要求。

2  计算机算法设计及离散性分析

2.1  常用的设计方法

在计算机算法设计过程中,常用的设计方法有以下两种:第一,递推法。该设计方法的应用有效体现了计算机速度快的特点,其主要是按照特定的规律计算序列中某个项值,例如通过计算机前面的一些项值计算后续序列中一些指定的项值,此过程需要大量的重复计算,所以对于计算机系统的功能性要求较高;第二,递归法。所谓递归法,实质上就是通过程序调用自身编程技巧的一种方法,在函数定义或说明中通过直接或间接的方法调用自身编程技巧,如此可以将一些复杂繁琐的问题简易化,即层层转化为与原复杂问题相类似的规模较小的问题。与递推法相比,利用递归法进行算法设计并不需要大量重复的计算,只需要少量的程序即可实现,有效减少了程序的代码量。在实际的设计算法过程中需要注意,递归法需要满足边界条件、递归前进段和递归返回段等参数标准,通常在边界条件符合要求时,递归呈现前进形式;反之,呈现递归返回。

2.2  设计方法的离散性研究

2.2.1  递推法离散性分析

在递推法设计过程中,系统通常会利用相对复杂的运算方式完成设计,详细如下。

算法1:求最大值。

int max(int*array,int size)

{

int mval=*array;

int i;

for(i=1;i<size;i++)

if(array[i]>mval)

mval=array[i];

return mval;

}

由上述算法可知,在计算最大值时,计算机系统会不断用已知的最大数值去和下一个数值进行对比直到算法结束,即使数值量巨大。可见该类算法的计算程序十分繁琐,对于人工求取最大值来说,如果数字量十分巨大,此时为了节省时间,会根据数字的位数进行筛选和排序,以此进行对比就会有效提升计算效率,这正是人类习以为常的连续性思维方式,也是很多初等数学所建立的标准。而对于计算机系统来说,要建立持续性的思维方式是十分困难的,其对于算法的要求较高,只有在算法符合规范标准的前提下,才能模拟出人类的这一种连续性思维方式。

2.2.2  递归法离散性分析

相对比递推法,递归法可以有效减少计算量,实现算法的精简化,详细如下。

算法2:递推法求取最大公约数。

void swapi(int*x,int*y)

{

int tmp=*x;

*x=*y;

*y=tmp;

}

int ged(int m,int n)

{

int r;

do

{

if(m<n)

swapi(&m,&n);

r=m%n;

m=n;

n=r;

}while(r);

return m;

}

算法3:遞归法求取最大公约数。

int ged(int a,int b)

{

if(a%b)

return ged(b,a%b);

return b;

}

由上述算法可知,递归法在计算最大公约数时,相对比递推法有了极大的简化,大大提升了计算效率和质量。所谓递归法,实际而言就是“自己调用自己”,以下对其程序运行表现的离散性进行分析:计算机系统在栈中所运行的程序,主要特点是后进先出,所以利用递归法进行算法设计时,需要在返回值时返回一个“自己”,只不过参数不同,直到返回一个确定的值,再层层返回,详细示意图如图1所示。

由图1可知,递归法每计算一次,首先就需要向内存中Push一次,在计算完成后,再一次一次Pop出,这作为一种离散性的设计体现,与人类连续性思维方式是截然不同的。

3  计算机数据结构离散性研究

对于计算机而言,其通常是以二进制实现数据的存储和运算,主要涉及的领域是逻辑数学。而对于逻辑运算而言,其可以体现出离散性的特征,所以研究计算机数据结构离散性通常与二进制相关。本文接下来以计算机二进制所体现出的离散性特征,分析计算机数据结构的离散性问题,详细如下。

3.1  二进制概述

就目前而言,大部分的计算机系统都采用二进制,所谓二进制主要是指一种逢2进位的进位制,该进位制主要由“0”和“1”两种进位符号组成。由于符号简单,所以实际的运算量较少,计算十分便捷,同时也便于电子方式的实现。

3.2  二进制离散性研究

与人类相比,计算机系统只可以识别二进制中的“0”和“1”,所以一些人类看起来比较简单的信息,例如文字、图片以及音频等,这些信息对于计算机系统而言,识别起来比较困难。要想实现对这些信息的有效识别和理解,计算机系统就必须要对这些信息进行离散化处理,得到自身可以识别的离散数据,这样才可以完成后续的信息处理和存储操作。通常情况下,计算机所能识别的离散数据,实质上就是由“0”和“1”组成的二进制数据信息,换言之,离散化处理就是将文字、图片以及音频等信息转换为二进制数据,以便于计算机系统进行识别判断,如对于音频信息来说,要便于系统识别,需要将连续变化的音频信息离散化处理,转换为二进制的数据类型,让系统可以进行处理和分析,详细处理方法如图2所示。

由图2可知,对于音频信息的离散化处理,其离散化处理得越精细,其声音还原的程度越高。

4  结  论

综上所述,随着计算机信息技术的飞速发展,其对于人类生存和生活的需求越来越大。而对于计算机算法的设计而言,要想其满足人类生存生活的需求,不仅要在设计方法上下功夫,还需要加强其离散性的研究,当前对于计算机算法及结构的研究还存在一定的缺陷,未来还需要加强对该方面的研究,确保计算机应用水平的进一步提升。

参考文献:

[1] 李晋丽,孙春娟,张学波.多措并举提升算法设计与分析课程教学质量 [J].电脑知识与技术,2019,15(10):111-113.

[2] 牛为华,程晓荣,袁和金,等.基于互动式的“算法设计与分析”课程教学改革 [J].数学学习与研究,2019(4):14.

[3] 徐丹.浅谈改进的计算机RSA加密算法设计与实现 [J].科学技术创新,2019(5):100-101.

[4] 李振江.计算机算法设计及数据结构离散性研究 [J].计算机产品与流通,2019(1):24.

[5] 和树繁.计算机算法设计及数据结构离散性研究 [J].中国新通信,2018,20(21):146.

作者简介:李丹(1991.05-),女,汉族,山西长治人,助教,硕士研究生,研究方向:计算机算法与数据结构。

猜你喜欢

数据结构
数据结构课程思政实践模式探索
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
BOPPPS模式在数据结构教学中的实践
翻转课堂与传统面授混合教学模式研究
以计算思维为中心的数据结构教学方法探讨
微课在数据结构课程中的设计和应用
数据结构与算法课程设计教学模式的探讨
高效学习数据结构