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

        ?

        辯證內(nèi)含豐富的算法舉例

        2017-02-25 07:10:08王春枝王立柱
        計算機教育 2017年1期
        關鍵詞:二叉樹數(shù)組基準

        王春枝 , 王立柱

        (湖北工業(yè)大學 計算機學院, 湖北 武漢 430068)

        辯證內(nèi)含豐富的算法舉例

        王春枝 , 王立柱

        (湖北工業(yè)大學 計算機學院, 湖北 武漢 430068)

        快速排序和堆排序是程序設計中的典型算法,但不易理解,因為它們內(nèi)含深刻的辯證思想。文章詳細論述這些算法中的辯證思想,旨在幫助學生高屋建瓴地把握這些算法。

        快速排序;堆排序;二叉樹;遍歷

        0 引 言

        快速排序和堆排序看似線性問題,實則是非線性問題,而且綜合運用多種方法才能求解。以快速排序為例,它需要綜合運用線性連續(xù)存儲、二叉樹、前序遍歷和中序遍歷的概念。綜合運用這些概念,包含著豐富的辯證思想。這些算法一般是數(shù)據(jù)結構中的典型算法,但很多教材特別是語言教材都在數(shù)據(jù)結構之前講授這些內(nèi)容,給學生的理解帶來很大困難。我們有必要具體解釋它們固有的辯證內(nèi)容。

        1 快速排序算法

        快速排序算法的基本思想是利用線性連續(xù)存儲結構,在二叉樹的前序遍歷基礎上建立二叉樹,最終的有序序列是這棵二叉樹的中序序列[1]。

        以數(shù)組元素[49,38, 65, 97, 76, 13, 27, 50]為例,實施快速排序。

        第1趟排序:以首元素49為基準,把數(shù)組元素分為左右兩部分,左部分不大于基準,右部分不小于基準,如圖1(a)所示?;鶞?9相當于根,左右兩部分[27,38, 13]和[76, 97, 65, 50]相當于左右子樹的節(jié)點。圖1(b)是它的拓撲結構。

        圖1 第1趟排序

        第2趟排序:以49的左子樹元素序列的首元素27為基準,將其分作左右兩部分[13]和[38], 27是左子樹的根,如圖2(a)所示,圖2(b)是它的拓撲結構。

        圖2 第2趟排序

        這時,49的左子樹中序序列已經(jīng)有序。

        第3趟排序:以49的右子樹元素序列的首元素76為基準,將其分作左右兩部分[50,65]和[97], 76是右子樹的根,如圖3(a)所示,圖3(b)是它的拓撲結構。

        圖3 第3趟排序

        第4趟排序:以76的左子樹元素序列的首元素50為基準,將其劃分為左右兩個子集,左子集為空,50為子樹的根,如圖4(a)所示,圖4(b)是它的拓撲結構。圖4(b)的中序序列顯然是一個有序序列。

        圖4 第4趟排序

        快速排序完畢。

        2 堆排序算法

        堆排序的關鍵是堆。堆是一種按照層次順序連續(xù)存儲的、特殊的完全二叉樹,一般分大根堆和小根堆。我們以小根堆為例,小根堆的特點是每一個結點的鍵都不大于其左右孩子的鍵,或者說,從根到葉結點的任何路徑上的鍵都是非減的,如圖5(a)所示。

        堆還是一種用非線性手段提高存取速度的優(yōu)先級隊列,它的主要操作是刪除和插人。

        小根堆的刪除是首刪,刪除的是最小元素,這個元素是二叉樹的根,即存儲中的首元素。步驟如下:

        (1)刪除存儲結構中第一個元素,然后將最后一個元素移到首位,如圖5(b)所示。

        (2)刪除后結構可能不再是堆(但根的左右子樹還是堆),需要向下調(diào)整為堆。調(diào)整的方法是將首元素即根不斷與其左右孩子的較小者比較,若大于后者,則交換,直至恢復堆秩序,如圖5(c)所示。

        圖5 小根堆的刪除過程

        向下調(diào)整算法的實質(zhì)是向下起泡排序:在線性結構中,向下起泡排序是前驅(qū)和后繼比較,但在堆結構中,前驅(qū)和后繼的關系擴展為雙親和孩子的關系,而且后繼不止一個,需要擇其小者。

        小根堆的插人是尾插,步驟如下:

        (1)將新的數(shù)據(jù)元素插人數(shù)據(jù)的尾部,如圖6(b)所示。

        (2)插人后的數(shù)據(jù)可能不再是堆,需要向上調(diào)整為堆。調(diào)整的方法是將插人的數(shù)據(jù)元素不斷與其雙親比較,若小于雙親,則交換,直至恢復堆秩序,如圖6(c)所示。

        向上調(diào)整算法的實質(zhì)是向上起泡排序:在線性結構中,向上起泡排序是后驅(qū)和前繼比較,但在堆結構中,后驅(qū)和前繼的關系擴展為孩子和雙親的關系。

        堆排序步驟如下[2]:

        圖6 小根堆的插入過程

        (1)模仿堆類的插人Insert方法,將數(shù)組調(diào)整為小根堆。因為只有一個元素的數(shù)組為堆,所以從數(shù)組第2個元素到最后一個元素掃描,每掃描一個元素,相當于向堆中插人一個元素,這時的數(shù)組可能不再是小根堆,需要將數(shù)組向上調(diào)整為小根堆。

        (2)將數(shù)組首元素和尾元素調(diào)換,數(shù)組元素個數(shù)減1(相當于刪除首元素);然后將縮小后的數(shù)組向下調(diào)整為小根堆。

        (3)重復步驟(2),直到數(shù)組元素個數(shù)為0。

        需要注意的是,利用小根堆排序,結果是降序序列。如果需要升序序列,可以仿照小根堆,建立大根堆。

        3 結 語

        所謂一個對象復雜,難以理解,是因為這個對象包含太多相互聯(lián)系和相互作用的因素。用恩格斯的話講:“事物是互相作用著的,并且在大多數(shù)情形下,正是忘記了這種多方面的運動和相互作用,阻礙我們的自然科學家去看清最簡單的事物”[3]。要正確地理解和把握這些因素,就需要辯證思維,因為辯證思維不是別的,正是復雜對象中相互聯(lián)系、相互作用的規(guī)律在頭腦中的反映。

        [1] 王立柱, 王春枝. 計算機科學與編程導論[M] 北京: 清華大學出版社, 2015: 119-122.

        [2] 王立柱. 數(shù)據(jù)結構與算法[M]. 北京: 華章出版社, 2013: 129-131.

        [3] 張建林, 王立柱. 馬克思恩格斯哲學原著英漢對照選讀[M]. 天津: 天津人民出版社, 2009: 179.

        (編輯:宋文婷)

        1672-5913(2017)01-0159-03

        G642

        湖北省教育廳項目“程序設計能力培養(yǎng)體系建設與實踐”(2015294);全國高等學校計算機教育研究會項目 “程序設計能力培養(yǎng)課程體系建設與實踐”(MXF2016-2-5,ER2016004)。

        王春枝,女,教授,研究方向為計算機應用、計算機網(wǎng)絡和計算機遠程教育,chunzhiwang@ vip.163.com。

        猜你喜歡
        二叉樹數(shù)組基準
        CSP真題——二叉樹
        電腦報(2022年37期)2022-09-28 05:31:07
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        二叉樹創(chuàng)建方法
        JAVA玩轉(zhuǎn)數(shù)學之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        一種由層次遍歷和其它遍歷構造二叉樹的新算法
        明基準講方法??待R
        尋找勾股數(shù)組的歷程
        滑落還是攀爬
        論復雜二叉樹的初始化算法
        河南科技(2014年24期)2014-02-27 14:20:01
        巧用基準變換實現(xiàn)裝配檢測
        河南科技(2014年15期)2014-02-27 14:12:35
        亚洲成A人A∨久在线观看| 亚洲精品久久久久中文字幕一福利| 中文字幕一区二区三区亚洲| 麻豆成人久久精品二区三区91| 一区二区三区一片黄理论片 | 亚洲加勒比久久88色综合| 国产裸体xxxx视频在线播放| 一群黑人大战亚裔女在线播放| 少妇无码av无码去区钱| 国产高潮流白浆免费观看不卡| 99久久久精品国产性黑人| 色噜噜精品一区二区三区| 国产精品又爽又粗又猛又黄 | 东北女人啪啪对白| 国产成人精品无码一区二区三区| 国产精品女人呻吟在线观看| 亚洲va在线∨a天堂va欧美va| 中文字幕无码人妻丝袜| 久99久精品免费视频热77| 日本经典中文字幕人妻| 亚洲激情视频在线观看a五月| 亚洲精品久久蜜桃av| 粗大猛烈进出高潮视频大全| 午夜精品久久久久久毛片| 国产亚洲一区二区手机在线观看| 天美麻花果冻视频大全英文版| 日韩亚洲国产av自拍| 在线播放中文字幕一区二区三区| 国产黄片一区二区三区| 日本在线一区二区三区视频观看| 久久久久99精品成人片欧美| 亚洲乱色伦图片区小说| 亚洲精品字幕| 国内揄拍国内精品| 亚洲色婷婷综合开心网| av手机天堂在线观看| 亚洲av色av成人噜噜噜| 亚洲乱码一区二区三区在线观看| 精品国产性色无码av网站| 亚洲午夜精品久久久久久人妖| 一本一本久久a久久精品综合|