王斌
摘要:在計算機科學領域中,軟件工程程序設計是一項重要的研究內容,而程序設計的核心就是算法的選擇,最佳的算法不僅能夠降低程序的復雜性,而且要能夠達到程序設計的要求。在軟件工程中對于程序設計算法的方法有很多種,該文主要對軟件工程程序設計的幾種常用算法進行比較研究,從而能夠為軟件工程程序設計提供一些參照條件。
關鍵詞:軟件工程;程序設計;常用算法;比較研究
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)18-4425-03
隨著科學技術的發(fā)展,計算機技術呈現(xiàn)出快速發(fā)展的狀態(tài),隨著計算機軟件系統(tǒng)的復雜程度以及規(guī)模的擴大,軟件的可靠性的問題也日趨增多,在軟件工程程序設計中計算方法也隨著增多,下面主要進行分析在軟件工程程序設計中分而治之法、貪心法設計、動態(tài)規(guī)劃法等幾種算法的特點以及實現(xiàn)機制進行分析和研究比較。
1算法的概述
在計算機中對于算法的描述種類有很多種,其中有自然語言、算法語言以及圖形語言和形式語言等。算法主要是指在有限的步驟內能夠解決一個問題的過程。算法的特性主要有以下幾點:確定性、有窮性、可行性以及輸入輸出這五個重要的特性,其中有窮性主要是指每一個算法必須在執(zhí)行的有窮步后結束一個程序。確定性主要是指算法的每一個步驟必須具有確切的定義。可行性主要是指在算法中每一步都應該是非?;镜乃惴?,并且每一步都能夠精確的計算。輸入性主要是指有0個或者多個輸入值,輸出性主要是指有1個或者多個輸出值[1]。
軟件工程程序算法在計算機上執(zhí)行計算的過程中需要有一定的存儲空間存放算法所需要的數(shù)據(jù)以及描述的程序。在軟件工程程序設計中對于不同的算法,其寫出的程序在計算機上進行運行的過程中所需要的空間和時間是不同的,并且針對不同的計算機的運行速度也是不同的,所以軟件工程程序設計中對于判定不同算法的復雜性時,應該注意計算機自身的問題,從而選擇出復雜性最低的算法。
2分而治之算法的研究
在計算機科學領域中分而治之方法是軟件工程程序設計中一項重要的算法。分而治之主要是指將一個復雜的問題分為兩個或者多個相似或者相同的子系問題,然后將所分的子問題分為更小的子問題,一直到能夠直接求出問題的答案為止,其中原問題的答案就是各個子問題答案的綜合。如果在具體使用分而治之法的過程中,因為子問題的類型大多數(shù)與原來的相同,所以很自然就能夠實現(xiàn)遞歸過程,求出問題的解。在軟件工程中采用分而治之的方法能夠解決問題時,可以使用分而治之的設計模式進行解決問題,這種設計模式不僅適合于用戶對這種算法具體深刻了解的用戶,以免出現(xiàn)重復性的勞動,提高復用率,而且還適合于對分而治之思想理解不深的用戶,從而能夠減輕用戶的負擔[2]。
1)分而治之算法的設計模式一般為:
其結構如圖1所示。
2)分而治之算法的應用特點
在計算機軟件工程程序設計中,分而治之算法的應用是非常繁多的,比如常見的循環(huán)賽日程表、合并排序、大整數(shù)乘法、二分搜索技術以及線性時間選擇等。應用分而治之算法可以解決具有以下特征的問題:能夠解決規(guī)??梢钥s小到能夠解決的問題;問題具有分解性能夠分解成多個小的并且類似或者相同的問題,并且問題具有子結構性質。問題所能夠分解的各個子問題是之間是相
在計算機科學領域中軟件工程程序設計以及編程的重點內容就是算法的設計,一個軟件工程程序設計的優(yōu)劣性主要在于程序算法的選擇,不同的算法具有不同的特點,其復雜性以及通用性也是具有很大的不同,所以在進行設計的過程中不僅應該注意其通用性和復雜性,而且還應該注意各種算法所使用問題的類型,從而才能軟件工程程序設計的完美以及精確。
[1]陳蓉,陳烽.軟件工程中程序設計方法的比較[J].電腦知識與技術,2012,8(2):333-334.
[2]陳端兵,黃文奇.求解矩形packing問題的貪心算法[J].計算機工程,2007,33(4):160-162.
[3] Alsuwaiyel M H.Algorithms desing techniques and analysis[M].Beijing:Publishing House of Electronics Industry,2003:103-204.
[4]吳志健,湯銘端.一種基于基因表達式程序設計的新算法[J].系統(tǒng)仿真學報,2008,20(8):1986-1989.