国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)結(jié)構(gòu)、算法和程序之間關(guān)系分析

2017-10-22 18:59范玉紅
中國新通信 2017年18期
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)程序算法

范玉紅

【摘要】 在電子計算機(jī)技術(shù)中,數(shù)據(jù)結(jié)構(gòu)是將其與信息連接在一起的一個重要部分,也是很多從事電子科技研究人員進(jìn)行學(xué)習(xí)所必須掌握的一門基礎(chǔ)性課程。在實際教學(xué)中,多數(shù)學(xué)生對于數(shù)據(jù)結(jié)構(gòu)、算法以及程序之間的關(guān)系并不很了解,在國內(nèi)的相關(guān)教材上的講解也不深入,導(dǎo)致學(xué)生對其關(guān)系較為困惑。本文基于對數(shù)據(jù)結(jié)構(gòu)、算法和程序之間的關(guān)系進(jìn)行一定的了解,就實現(xiàn)算法設(shè)計和算法實現(xiàn)這兩個方面的講解對數(shù)據(jù)結(jié)構(gòu)、算法和程序之間的關(guān)系進(jìn)行分析。

【關(guān)鍵詞】 數(shù)據(jù)結(jié)構(gòu) 算法 程序

一、數(shù)據(jù)結(jié)構(gòu)的研究內(nèi)容

1、數(shù)據(jù)結(jié)構(gòu)的概念。隨著軟件技術(shù)的發(fā)展,數(shù)據(jù)結(jié)構(gòu)與算法已經(jīng)成為軟件開發(fā)工程師必備的程序設(shè)計是數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)和實現(xiàn)方法。數(shù)據(jù)是人們將文字符號、數(shù)字符號和其他規(guī)定符號表述為現(xiàn)實中發(fā)生的事情和產(chǎn)生的活動的一種描述。在生活中,我們所使用的文字和數(shù)字來表示我們的世界,例如商品的價格會用貨幣數(shù)量來表示。在計算機(jī)的世界里,數(shù)據(jù)就扮演了這個角色,將數(shù)據(jù)輸入到電腦中,電腦就能自動的識別信息,完成工作。數(shù)據(jù)結(jié)構(gòu)相對于數(shù)據(jù)來說是表述數(shù)據(jù)之間的關(guān)系的一種集合,數(shù)據(jù)結(jié)構(gòu)完全可以只講數(shù)據(jù)的存儲方法和算法的邏輯邏輯過程,可以不涉及具體實現(xiàn)過程,在實現(xiàn)一種數(shù)據(jù)的存儲和一個算法的求解過程時。數(shù)據(jù)結(jié)構(gòu)在應(yīng)用中,可以選擇應(yīng)用不同的程序設(shè)計語言來達(dá)到目的,同一個算法,既可以使用VB實現(xiàn),也可以選擇C、C++、JAVA、或者C#來實現(xiàn),而在選定某一工具來實現(xiàn)算法時,程序設(shè)計的具體指令和方法是由所選擇的程序設(shè)計語言的語法決定。

2、數(shù)據(jù)結(jié)構(gòu)的分類。在進(jìn)行數(shù)據(jù)結(jié)構(gòu)研究時,一般來說包括下面的幾個部分:1)數(shù)據(jù)元素間的邏輯關(guān)系;2)數(shù)據(jù)元素的儲存關(guān)系;3)數(shù)據(jù)元素的儲存方式;4)數(shù)據(jù)結(jié)構(gòu)上的運算方法。在數(shù)據(jù)結(jié)構(gòu)中,較為常見的結(jié)構(gòu)有集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖形結(jié)構(gòu)幾種,常見的數(shù)據(jù)儲存結(jié)構(gòu)有順序存儲結(jié)構(gòu)、索引存儲結(jié)構(gòu)等等。

二、算法分析

1、算法的意義。算法是研究實際問題中按照一定的編寫步驟得到結(jié)果的過程,一般來說分為有解和無解兩種結(jié)果形式,算法在計算機(jī)技術(shù)中占有重要的地位,是計算機(jī)解決問題時必不可少的過程。當(dāng)我們進(jìn)行某個實際問題的計算時,通過計算機(jī)進(jìn)行對實際問題的解決辦法、解決思路的理清,需要通過算法來進(jìn)一步實現(xiàn)。在解決問題時,算法中包含的等待執(zhí)行的命令和運算過程是解決問題的基本,計算機(jī)在進(jìn)行計算時通過對算法中各步驟的要求遵循算法的計算過程和方法,計算機(jī)不需要對操作進(jìn)行理解就能夠?qū)崿F(xiàn)解決問題得出相應(yīng)的結(jié)果。

2、算法的構(gòu)成。一般來說,算法中包含有操作、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)這三個部分,算法在執(zhí)行命令時經(jīng)過這三部分的計算得出正確的結(jié)果。

3、算法分析。算法分析的應(yīng)用是為了進(jìn)行設(shè)計具體的算法,在數(shù)學(xué)工具的輔助下,算法分析對每一種算法的復(fù)雜程度、計算過程、計算結(jié)果進(jìn)行一定的分析,能夠在一定程度上實現(xiàn)分析出這種算法在實際應(yīng)用中的綜合能力,包括其優(yōu)點和缺點的具體分析結(jié)果和解決問題的實際能力、效率。

算法分析中對算法的定義和評估一般有三個部分:1)算法進(jìn)行的時間,是評估中最為重要的一部分;2)算法的存儲空間大小,主要是輔助儲存空間的大??;3)算法實際應(yīng)用中的能力,主要是算法是否容易理解和調(diào)整。

三、算法和數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系

1、二者之間的聯(lián)系。我們現(xiàn)在普遍認(rèn)為,數(shù)據(jù)結(jié)構(gòu)與算法之間的結(jié)合就等于程序,數(shù)據(jù)結(jié)構(gòu)在一定層面上來說就相當(dāng)于是算法的基礎(chǔ),算法要依附于數(shù)據(jù)結(jié)構(gòu)進(jìn)行計算,實現(xiàn)解決實際問題。在算法的研發(fā)中,往往先要進(jìn)行數(shù)據(jù)結(jié)構(gòu)的調(diào)整和搭建,以保證算法對其有充分的適應(yīng)性。算法的應(yīng)用對象是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)在算法中是其進(jìn)行整合的一部分,數(shù)據(jù)結(jié)構(gòu)在進(jìn)行設(shè)計時要進(jìn)行存儲方式的選擇,例如一個問題的信息確定存儲途徑是數(shù)組存儲或者是較為普通的變量存儲,需要進(jìn)行選擇后才能進(jìn)行算法的進(jìn)一步設(shè)計。數(shù)據(jù)結(jié)構(gòu)可以說是算法的基石,沒有較為合理的數(shù)據(jù)結(jié)構(gòu),就無法使算法很好地應(yīng)用,數(shù)據(jù)結(jié)構(gòu)的不同會導(dǎo)致算法之間也有非常大的差異性,算法的設(shè)計可以說是不能脫離數(shù)據(jù)結(jié)構(gòu)存在的。數(shù)據(jù)結(jié)構(gòu)在進(jìn)行設(shè)計時要充分為算法的設(shè)計進(jìn)行考慮,不能只對數(shù)據(jù)結(jié)構(gòu)一方面進(jìn)行設(shè)計而忽略了算法的重要性,否則數(shù)據(jù)結(jié)構(gòu)就會失去它的存在價值。在進(jìn)行算法設(shè)計時,工程師一般都會對較為典型的數(shù)據(jù)結(jié)構(gòu)有一定的了解,在這個基礎(chǔ)上設(shè)計師才能將二者之間緊密的聯(lián)系在一起,使算法得到更好的應(yīng)用。

2、數(shù)據(jù)結(jié)構(gòu)與算法之間的差別。數(shù)據(jù)結(jié)構(gòu)側(cè)重點在數(shù)據(jù)的邏輯結(jié)構(gòu)以及存儲結(jié)構(gòu)的關(guān)系是否合理上,算法的側(cè)重點則是在數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行實際問題的解決。算法較為偏重的是整體的結(jié)果和結(jié)構(gòu)的統(tǒng)一性,而數(shù)據(jù)結(jié)構(gòu)則是這些結(jié)構(gòu)的主要構(gòu)成部分,是完成計算的基礎(chǔ)。

四、程序與算法之間的關(guān)系

算法是解決問題的實際步驟,要求其滿足有效、有窮、確定、0個或者多個輸入、1個或多個輸入的特性。程序需要有專業(yè)的計算機(jī)編程人員來進(jìn)行編寫,需要較高的水平和技術(shù),程序和算法之間的不同點在于程序不受約束,算法則受到有窮性約束。算法的定義的使用上對其有窮性有一定的影響,使得二者之間存在差異。

五、數(shù)據(jù)結(jié)構(gòu)與算法間的關(guān)系案例

假如:現(xiàn)有若干學(xué)生數(shù)據(jù),每個學(xué)生數(shù)據(jù)包括學(xué)號、姓名、班級及若干門成績(每名學(xué)生選擇的科目數(shù)可能不同,假設(shè)最多六門),要求設(shè)計一個程序輸出每個學(xué)生的學(xué)號、姓名、平均分和每門課的平均分。下面我們有兩種存儲方案:

第一種方案是把學(xué)生的所有數(shù)據(jù)都存放在一個大的表格中,每個學(xué)生相對應(yīng)的全部數(shù)據(jù)為一個記錄。根據(jù)題意,每名學(xué)生假設(shè)所選的課程數(shù)不超過六門,那么所產(chǎn)生的成績數(shù)也不多于六門。下面進(jìn)行數(shù)據(jù)結(jié)構(gòu)的編寫。

Struct…stud

{

………Int…no;

………Char…name[10];

………Int…classno;

………Int…deg1;

………Int…deg2;

………Int…deg3;

…Int…deg4;

…Int…deg5;

………Int…deg6;

};

第二個方案就是把學(xué)生的所有數(shù)據(jù)都放入到一個表格中,每一名學(xué)生的一門課程對應(yīng)一條記錄,這樣的編寫出的成績項只需要一個,我們?yōu)榱藢⒚恳婚T課程區(qū)分開來,對每一門課程都增加了一個編號。數(shù)據(jù)結(jié)構(gòu)如下。

Struct…stud

{

………Int…no;

………Char…name[10];

………Int…classno;

………Int…causeno;

………Int…deg;

};

進(jìn)行分析比較發(fā)現(xiàn),第一種方案相對來說可行性較大。

結(jié)束語:時代的發(fā)展催生出來的新型軟件的開發(fā)離不開程序,在通過計算機(jī)進(jìn)行實際問題的解決過程中,一定會對實際問題的各種信息和處理方式進(jìn)行發(fā)硬,信息的表示中包含兩個部分,信息的邏輯表示和信息的存儲表示,這兩個部分占非常重要的部分。數(shù)據(jù)結(jié)構(gòu)與算法、程序之間的關(guān)系是相互依存、相互作用的,數(shù)據(jù)結(jié)構(gòu)作為其基礎(chǔ),必須要做好相應(yīng)的檢查和調(diào)整,使算法和程序能夠得到較好的應(yīng)用。我們在進(jìn)行數(shù)據(jù)結(jié)構(gòu)的編寫時應(yīng)該注意數(shù)據(jù)選擇上的合理性,通過不同的編寫方法所達(dá)到的效果差異也是非常大的。在進(jìn)行學(xué)習(xí)時,掌握數(shù)據(jù)結(jié)構(gòu)、算法與程序間的關(guān)系和內(nèi)容能夠快速的提升學(xué)習(xí)水平,達(dá)到進(jìn)一步的提升。

參 考 文 獻(xiàn)

[1]…李文明,葉笑春,張洋,宋風(fēng)龍,王達(dá),唐士斌,范東睿,謝向輝.…BDSim:面向大數(shù)據(jù)應(yīng)用的組件化高可配并行模擬框架[J].…計算機(jī)學(xué)報.…2015(10)…

[2]…李文杰,姜淑娟,錢俊彥,王興亞,鞠小林.基于對象引用關(guān)系的Java程序內(nèi)存行為分析方法[J].…電子學(xué)報.…2015(07)…

[3]…劉曉靜,王曉英,張玉安,黃建強(qiáng),劉志強(qiáng).以創(chuàng)新人才培養(yǎng)為目標(biāo)的數(shù)據(jù)結(jié)構(gòu)實驗教學(xué)改革[J].…實驗技術(shù)與管理.…2014(11)endprint

猜你喜歡
數(shù)據(jù)結(jié)構(gòu)程序算法
數(shù)據(jù)結(jié)構(gòu)線上線下混合教學(xué)模式探討
重典型應(yīng)用,明結(jié)構(gòu)關(guān)系
給Windows添加程序快速切換欄
Travellng thg World Full—time for Rree
簡化化學(xué)平衡移動教學(xué)程序探索
“程序猿”的生活什么樣
學(xué)習(xí)算法的“三種境界”
算法框圖的補全
算法初步知識盤點
英國與歐盟正式啟動“離婚”程序程序
兴城市| 西吉县| 江都市| 东至县| 高邑县| 洛扎县| 辉县市| 康保县| 阳江市| 靖江市| 开江县| 临猗县| 麻江县| 长治县| 北安市| 贵港市| 屯门区| 台湾省| 阳原县| 海兴县| 虎林市| 杭锦旗| 太原市| 长海县| 冀州市| 哈密市| 定安县| 界首市| 怀来县| 荔浦县| 绍兴市| 六盘水市| 永兴县| 平定县| 眉山市| 象山县| 蓝山县| 营山县| 华宁县| 潞西市| 五常市|