李丹 蘇天路


摘? 要:隨著社會的不斷發展,計算機信息化技術的應用越來越廣泛,而算法設計作為計算機系統運行的基礎,可以有效利用數學方法將信息數據轉換為系統可以識別的編碼程序,以此完成相關操作和運行。而對于計算機算法設計而言,除了要掌握規范的方法以外,還需處理好離散性的數量關系,這對于算法設計以及計算機系統結構本身是同等重要的,必須要給予足夠的重視。鑒于此,文章重點就計算機算法設計及數據結構離散性相關問題進行了研究分析,以供參考和借鑒。
關鍵詞:算法設計;數據結構;離散性
中圖分類號: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-),女,漢族,山西長治人,助教,碩士研究生,研究方向:計算機算法與數據結構。