亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        圖示教學法在數(shù)據(jù)結(jié)構(gòu)與算法教學中的應用

        2009-12-11 07:27:04沙宗堯邊馥苓
        計算機教育 2009年18期
        關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)算法

        沙宗堯 邊馥苓

        摘要:數(shù)據(jù)結(jié)構(gòu)和算法的教學是計算機科學與技術(shù)、軟件工程等相關(guān)專業(yè)最重要的教學內(nèi)容之一,特別是在復雜的算法分析時,由于具有抽象性和較強的邏輯性,不采用好的教學方法,往往是事倍功半。本文提出用圖示教學法教授數(shù)據(jù)結(jié)構(gòu)中的算法,并以圖狀結(jié)構(gòu)中的最小生成樹算法為例,詳細介紹了該圖示方法描述數(shù)據(jù)結(jié)構(gòu)算法過程,可以為數(shù)據(jù)結(jié)構(gòu)的教學提供參考。

        關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);算法;圖示教學法;最小生成樹

        中圖分類號:G642 文獻標識碼:B

        1背景

        數(shù)據(jù)結(jié)構(gòu)和算法是計算機科學與技術(shù)、軟件工程等相關(guān)專業(yè)的專業(yè)基礎課,其重要性不言而喻,在教學過程中需要運用多種教學方法,讓學生領(lǐng)會算法實現(xiàn)的過程和本質(zhì),加深對所學知識的理解、記憶和應用。在數(shù)據(jù)結(jié)構(gòu)和算法課程教學中,圖狀結(jié)構(gòu)的教學是一個難點,特別是涉及到圖的具體應用時,更讓學生難以掌握,本文將圖示教學法應用到數(shù)據(jù)結(jié)構(gòu)中關(guān)于圖狀結(jié)構(gòu)的一個典型應用——最小生成樹問題,給出該教學方法的基本方法和過程,取得了良好的教學效果。

        最小生成樹是圖狀(網(wǎng)絡)結(jié)構(gòu)中一個典型的實踐應用,可以解決實際中諸如公路網(wǎng)的規(guī)劃,即在n個城市中,如何規(guī)劃n-1條公路,使得n個城市都可以連接起來,而所有城市間的連接線長度的總和最短(所要修建的公路長度最短,因而費用最少)。

        對于這個典型的應用,絕大多數(shù)教科書均介紹了普里姆(Prim)算法,用于求最小生成樹問題,然而教科書對這個算法實現(xiàn)的論述,一般是先介紹應用背景,然后就給出算法實現(xiàn)的過程,缺少形象的算法分析過程,課堂教學講解如果按照這種方式去傳授,學生在理解上十分吃力,而且不能有效地長期記憶。筆者結(jié)合自己在教學中的經(jīng)驗,將以上算法采用了圖示教學法來分析其基本原理和實現(xiàn)過程,并給出算法實現(xiàn)過程,取得了良好的效果。

        2教學方法

        圖示教學法就是用各種圖形表示的方法描述問題、引導學生的思考,增強對新知識的記憶,并在教學中被廣泛使用。最小生成樹屬于網(wǎng)絡的實踐應用,下面以圖1為例,用圖示教學法來對最小生成樹算法進行圖示過程分析。

        假設某一區(qū)域內(nèi)有n個城市,現(xiàn)要為這些城市修建城間公路,使得任意兩城市間都能夠相互通達(連通),由于要求所有的城市都在該公路網(wǎng)上,某兩個城市間的道路稱為一個路段,則修建的道路路段總數(shù)應等于n-1個(容易理解:如果路段總數(shù)小于n-1,則會有存在城市不能處在該道路網(wǎng)的節(jié)點上;如果路段總數(shù)大于n-1則會存在某兩個城市間有至少兩個路段,則路段距離的總和將不是最小),先從這些城市中任選一個作為種子,把剩下的城市用路段連接到由該種子城市為起始點的城市網(wǎng)絡中,保證路段長度總和最小(最優(yōu)路段網(wǎng)),則最后連接好的路段即為最小生成樹。

        如圖1,每個帶圈的數(shù)字表示一個城市,城市間的邊表示城市間的距離,如果兩城市間沒有邊存在,則表示這兩個城市間不適宜修道路(如有山脈或河流隔斷,造價太高),假設種子城市為數(shù)字1(選定的網(wǎng)絡的起始頂點),通過圖示教學法求最優(yōu)路段網(wǎng)的過程如圖2:

        圖中,Li-j表示城市i與城市j間的距離,例如在(b)中,當把城市2加入到最優(yōu)路段網(wǎng)后,城市3、4、6與該最優(yōu)路段網(wǎng)的距離發(fā)生了變化,例如城市3,由于由L1-3(=∞)> L2-3(=5),故其與最優(yōu)路段網(wǎng)的距離由原先的∞也轉(zhuǎn)變?yōu)?

        首先構(gòu)造一個初始最優(yōu)路段網(wǎng),但該網(wǎng)絡只有一個節(jié)點,即“種子城市”,其位于圖2(a)中的中心圓圈內(nèi),圈外的節(jié)點稱為外圍節(jié)點或外圍城市。然后根據(jù)圖1城市間的距離(網(wǎng)絡節(jié)點間的邊的權(quán)值),求其它所有城市(網(wǎng)絡節(jié)點)與種子城市間的距離(通過訪問網(wǎng)絡的物理存儲結(jié)構(gòu)如鄰接表獲取),該圖表示僅通過了種子城市來連接所有的外圍其它城市,圖中中心圓圈外的城市當前還沒有加入到最優(yōu)路段網(wǎng)規(guī)劃中,圈外連接每個外圍城市與中心圓圈的實線表示該城市如果按當前規(guī)劃方案加入到該路段網(wǎng)時所需要建造的路段長度(即網(wǎng)絡邊的權(quán)),圈內(nèi)的虛線表示當前外圍城市通過某一個最優(yōu)路段網(wǎng)中的某城市為“橋梁”,而進入到該網(wǎng)絡中。例如,城市2如果通過城市1進入規(guī)劃網(wǎng),則需要修建長度為16(僅表示相對數(shù)值)的道路,城市5要修建長度19的道路,城市6要修建長度21的道路,而城市3和城市4無法通過城市1來連接到最優(yōu)路段網(wǎng)中(距離為無窮大,∞),而必須通過其它城市作為“橋梁”,來進入該規(guī)劃網(wǎng)絡中。很明顯,如果按照該方案來把所有的外圍城市都加入到初始最優(yōu)路段網(wǎng),得到的路段網(wǎng)如圖2(g),需要修建的路段網(wǎng)總長度為∞,顯然不是最優(yōu)路段網(wǎng)。

        注意到為了使規(guī)劃的路段網(wǎng)是最優(yōu)的(路段長度總和最小),只要保證每次加入到最優(yōu)路段網(wǎng)中的城市都具有最短路段長度,則最后的路段總長度也必然最小。在圖2(a)中,城市2與種子城市具有最小的距離(16),因而不可能找到其它任何一個路段,實現(xiàn)“種子城市與其它外圍城市實現(xiàn)互連時,種子城市到其它任意一個城市的路段距離小于該值”,因而路段②-①必然是滿足種子城市連通其它城市的最優(yōu)路段,將城市2加入到最優(yōu)路段網(wǎng)后,得到圖2(b)。注意到當城市2加入到最優(yōu)路段網(wǎng)后,城市3、4、6如果是通過城市2為“橋梁”(圖中的虛線所示),加入到該最優(yōu)路段網(wǎng)中,可以使各自的路段長度由原先的∞、∞和21分別縮短到5、6、11(其它城市通過城市2無法實現(xiàn)路段長度縮短,因為保持不變),此時路段總長度也由原先的∞縮小到57(即16+5+6+19+11),較圖2(a),該方案有了很大的進步。然而該網(wǎng)絡仍不是最優(yōu)路段網(wǎng),因為其僅保證了路段②-①的最優(yōu)性(注意圓圈內(nèi)的網(wǎng)絡是最優(yōu)的),而其它城市到該網(wǎng)絡中的路段并非最優(yōu),這樣不能保證路段總長度最小。

        進一步注意到,在所有的當前外圍城市中,城市3距離最優(yōu)路段網(wǎng)的距離最短(5),也就是為了使當前最優(yōu)路段網(wǎng)(圓圈內(nèi)的城市及連線)與其它外圍城市能夠?qū)崿F(xiàn)連通,且連通后的路段總長度最小,所以當前應加入城市3(圖2(c))。城市3的加入或許可以使得其它的外圍城市通過該城市為“橋梁”,而縮短外圍城市到最優(yōu)路段網(wǎng)的距離(當然這里城市3的加入實際并沒有使其它城市到最優(yōu)路段網(wǎng)的距離縮小)。同樣的道理,在第4步(圖2(d)),將城市4加入到最優(yōu)路段網(wǎng)中(因為在余下的外圍城市中,城市4到最優(yōu)路段網(wǎng)的距離最小),該城市的加入,也使得城市1以該城市為“橋梁”而到最優(yōu)路段網(wǎng)的距離由原來的19縮短到18(其它路段不變)。第5步將城市6加入到最優(yōu)路段網(wǎng)中(圖2(e)),該城市的加入沒有影響余下的城市(當前僅剩一個城市,即城市5),最后將城市5加入到最優(yōu)路段網(wǎng)中(圖2(f))。得到的最終的最優(yōu)路段網(wǎng)如圖2(h),其路段長度的總和為56(16+5+11+6+18)。

        3算法求解

        有了如上的圖示教學法描述的計算最小生成樹實現(xiàn)基本過程,在講解算法時就比較容易了。算法在實現(xiàn)時需要構(gòu)造三個輔助數(shù)組:第1個數(shù)組A[n](n為節(jié)點數(shù))記錄當前節(jié)點是外圍節(jié)點還是已加入最短路段(路徑)網(wǎng)的節(jié)點,數(shù)組元素A[i]=0或1,0表示節(jié)點i是一個外圍節(jié)點,當加入到最短路段(路徑)網(wǎng)后,A[i]=1;第2個數(shù)組B[n]記錄各節(jié)點到最短路段(路徑)網(wǎng)的距離,用B[n]表示;第3個數(shù)組C[n]記錄外圍節(jié)點通過最短路段(路徑)網(wǎng)內(nèi)的哪一個節(jié)點為“橋梁”而進入該路段(路徑)網(wǎng)的。注意這里的路徑R和路段L是兩個不同的概念,路段是節(jié)點的邊,而路徑是具有共同節(jié)點的有序邊起節(jié)點與尾節(jié)點首尾相連在一起的序列,如在圖1中,其中的一個路徑R1-3=L1-2+L2-3。下面結(jié)合圖2和圖3,給出這些數(shù)組的值在計算過程中的變化情況。

        輔助數(shù)組的變化情況如下圖3所示,其中圖3(a)即對應于圖2(a),圖3(b)對應于圖2(b),依此類推。在圖3(a)中,首先只有第一個節(jié)點進入最短路段網(wǎng),因此A[1]=1,其它的A元素均為0,外圍節(jié)點與最短路段網(wǎng)的距離B[i]與圖2(a)中的距離對應,這里節(jié)點1由于已在最短路段網(wǎng),所以B[1]=0,由于所有的節(jié)點目前都是通過節(jié)點1與最短路段網(wǎng)連接,因而所有的C[i]的值都是1。在圖3(b)中,由于節(jié)點2距最短路段網(wǎng)的距離最小(16),節(jié)點2進入最短路段網(wǎng),因而A[2]=1,此時由于節(jié)點2已進入最短路段網(wǎng),因而B[2]=0,而節(jié)點3和節(jié)點4通過節(jié)點2,使它們距最短路段網(wǎng)的距離由原先的∞縮短到5和6,節(jié)點6也通過節(jié)點2使B[6]由21縮小到11。圖3(c)、3(d)、3(e)、3(f)的過程不再贅述。最后的結(jié)果(圖3(f))表明,節(jié)點1通過其本身進入最短路段網(wǎng),節(jié)點2通過節(jié)點1進入最短路段網(wǎng),節(jié)點3、4、6均通過節(jié)點2為“橋梁”進入最短路段網(wǎng),而節(jié)點5通過節(jié)點4進入最短路段網(wǎng)。

        基于上述分析,不難給出以上算法的實現(xiàn)描述:

        (1) 初始化數(shù)組A、B、C,結(jié)果如圖2(a)、圖3(a),這里假設以節(jié)點1為起始(源)節(jié)點,共有n個節(jié)點。

        (2) 反復執(zhí)行如下操作:將B[i]中值最小的元素對應的編號i(即節(jié)點i)放入A中(即修改A[i]為1),然后修改A[j]!=0(j!=i)對應的B[j]和C[j]的值,修改的依據(jù)是:如果B[j]>Li-j,則用B[j]的值更改為Li-j。直至所有的A[i](1<=i<=n)都是1為止。

        (3) 輸出結(jié)果,將B、C的最后值輸出即可以得到最后結(jié)果,B所有的元素最后都為0,表示所有的元素都進入了最短路段網(wǎng)(最小生成數(shù)網(wǎng)),而C中的元素值表示的是當前節(jié)點元素(即節(jié)點1、2、3、4、5或6)是通過C中表示的節(jié)點編號而進入最短路段網(wǎng)的,即:節(jié)點1是通過其自身進入路段網(wǎng),節(jié)點2通過節(jié)點1進入路段網(wǎng),節(jié)點3、4和6均通過節(jié)點2進入路段網(wǎng),節(jié)點5通過節(jié)點4進入路段網(wǎng)。

        4結(jié)論

        本文提出將圖示教學法可應用于數(shù)據(jù)結(jié)構(gòu)和算法課程教學的多個環(huán)節(jié)中,有些算法在大多數(shù)教科書中有了一定的圖示過程表示,而有些算法卻沒有給出形象的圖示表示,因而需要在教學中應補充。本文以圖狀結(jié)構(gòu)中的最小生成樹算法為例,通過圖示分析,詳細地講解這個算法的核心思想和實現(xiàn)過程,通過視覺刺激,使學生能夠加深對這個算法過程的把握,取得了良好的教學效果。

        參考文獻:

        [1] 戴敏,于長云,董玉濤. 高效學習數(shù)據(jù)結(jié)構(gòu)[J]. 計算機教育,2006(2):59-60.

        [2] 余臘生,石獻. 基于創(chuàng)新理念的數(shù)據(jù)結(jié)構(gòu)教學方法探討[J]. 計算機與信息技術(shù),2006(11):110-114.

        [3] 黃毅蓉. 關(guān)于多元復合函數(shù)偏導數(shù)鏈導法則的圖示教學探討[J]. 成都航空職業(yè)技術(shù)學院學報,2001(1):31-33.

        [4] 薛超英. 數(shù)據(jù)結(jié)構(gòu)[M]. 2版. 武漢:華中科技大學出版社,2002.

        猜你喜歡
        數(shù)據(jù)結(jié)構(gòu)算法
        數(shù)據(jù)結(jié)構(gòu)線上線下混合教學模式探討
        基于MapReduce的改進Eclat算法
        Travellng thg World Full—time for Rree
        進位加法的兩種算法
        數(shù)據(jù)結(jié)構(gòu)課程教學網(wǎng)站的設計與實現(xiàn)
        電子測試(2018年15期)2018-09-26 06:01:42
        算法初步兩點追蹤
        基于增強隨機搜索的OECI-ELM算法
        “翻轉(zhuǎn)課堂”教學模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學為例
        一種改進的整周模糊度去相關(guān)算法
        高職高專數(shù)據(jù)結(jié)構(gòu)教學改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        成人丝袜激情一区二区| 欧美一级鲁丝片免费一区| 白色白色在线视频播放平台| 国产剧情一区二区三区在线| 免费看av在线网站网址| 少妇人妻在线视频| 久久久久久无码AV成人影院| 国产香蕉尹人综合在线观| 偷拍自拍一区二区三区| 国产亚洲精品在线视频| 麻豆tv入口在线看| 国产黑色丝袜在线观看下| 国产欧美日韩午夜在线观看| 亚洲综合原千岁中文字幕| 丰满少妇被猛进去高潮| 久久精品国产精品| 欧洲综合色| 日本人妻伦理片在线观看| 中文字幕本久久精品一区| 亚洲成av人片在线观看麦芽| 国产爆乳乱码女大生Av| 18禁成人免费av大片一区| 色欲色香天天天综合网www| 国产suv精品一区二区883| 99精品国产兔费观看久久| 日产精品一区二区三区免费| 久久热免费最新精品视频网站| 少妇人妻在线无码天堂视频网| 久久天天躁夜夜躁狠狠躁2022| 亚洲又黄又大又爽毛片 | 日韩一区在线精品视频| 免费少妇a级毛片人成网| 2021av在线| 大香蕉视频在线青青草| 少妇愉情理伦片丰满丰满| 97人妻熟女成人免费视频| 69搡老女人老妇女老熟妇| 永久免费视频网站在线| 94久久国产乱子伦精品免费| 国产精品每日更新在线观看 | h视频在线免费观看视频|