【正文】
發(fā)布功能,完整支持 HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。 javadoc – 文檔生成器,從源碼注釋中提取文檔。特別是 Java 企業(yè)應(yīng)用編程接口( Java Enterprise APIs)為企業(yè)計算及 電子商務(wù)應(yīng)用 系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。 Java 語言是動態(tài)的 [10]。 Java 是性能略高的 [10]。 Java 程序(后綴為 java 的文件)在 Java 平臺上被編譯為體系結(jié)構(gòu)中立的 字節(jié)碼 格式(后綴為 class 的文件),然后可以在實現(xiàn)這個 Java 平臺的任何系統(tǒng)中運行。 Java 語言是健壯的 [10]。并提供了自動的廢料收集,使得程序員不必為 內(nèi)存管理 而擔憂。Java 自面世后就非常流行,發(fā)展迅速,對 C++語言形成了有力沖擊。 因此,本文以 java 為開發(fā)語言,設(shè)計開發(fā)了 基于姓名排序算法動態(tài)演示系統(tǒng),有助于初學者的形象直觀的學習排序算法。數(shù)據(jù)結(jié)構(gòu)從一維二維向三維和多維數(shù)據(jù)結(jié)構(gòu)的研究意義以及如何實現(xiàn)它們等等,都是數(shù)據(jù)結(jié)構(gòu)今后研究的重要內(nèi)容 [2]。 Sorting Algorithm。該系統(tǒng)實現(xiàn)了 插入排序(鏈表插入排序、直接插入排序、折半插入排序等)、交換排序、選擇排序、歸并排序、堆排序等算法的動態(tài)演示。因此 ,要建立良好的數(shù)據(jù)結(jié)構(gòu),首先對系統(tǒng)按某種原則進行分解,使系統(tǒng)中各模塊間獨立性強,依賴性小,結(jié)構(gòu)靈活 ,易于維護。許多諸如數(shù)據(jù)工程多 媒介數(shù)據(jù)庫和知識工程等等新發(fā)展起來的學科,也都大量涉及封數(shù)據(jù)結(jié)構(gòu)的理論和技術(shù) , 迫切要求開拓與之對適應(yīng)的數(shù)據(jù)結(jié)構(gòu) [11]。在以后的發(fā)展中,排序?qū)ξ覀兊膶W習和生活的影響會逐漸增大,因此設(shè)計開發(fā)一個排序算法動畫演示系統(tǒng),以提高自己對排序算法的掌握程度 ,并希望該系統(tǒng)有助于初學者直觀學習排序算法。 Java 語言的語法與 C 語言 和 C++語言很接近,使得大多數(shù)程序員很容易學習和使用 Java。 Java 語言是分布式的 [10]。 Java 通常被用在網(wǎng)絡(luò)環(huán)境中,為此, Java 提供了一個安全機制以防 惡意代碼的攻擊。 Java 語言是解釋型的 [10]。值得注意的是 Thread 類已經(jīng)實現(xiàn)了 Runnable 接口,因此,任何一個線程均有它的 run 方法,而 run 方法中包含了線程所要運行的 代碼 。 Java 語言的優(yōu)良特性使得 Java 應(yīng)用具有無比的健壯性和 可靠性 , 這也減少了應(yīng)用系統(tǒng)的維護費用。 沒有 JDK 的話,無法編譯 Java 程序,如果想只運行 Java 程序,要確保已安裝相應(yīng)的 JRE。 Javap: Java 反匯編器 ,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時顯示 字節(jié)代碼 含義。隨著 MyEclipse 20xx支持 Html5,你可以添加音頻、視頻和 API 元素到你的項目,從而為移動設(shè)備創(chuàng)建復(fù)雜的 Web 應(yīng)用程序。 i 。 } } } (3) 時間復(fù)雜度分析 陜西理工學院畢業(yè)設(shè)計 第 6 頁 共 80 頁 直接插入排序算法必須 進行 n1 趟。 i 。 j) { src[j + 1] = src[j]。這個過程稱一趟快速排序 [11]。 } //將比軸記錄大的記錄移到高端 l[low] = l[high]。如果選擇左邊第一個元素為主元,則快速排序的最壞情況發(fā)生在原始序列正向有序或反向有序時。 if (j != i) { String temp = src[i]。 //臨時數(shù)據(jù)存儲 int i=s, k = 0,j = m+1。 j++。 k++。 int p = nodes[0].getNext()。 for (int j = 2 * i。 num[j] = x。排序示例見圖 。 i 。 i 26。 j 。i n t j = i 2 。h i g h = m 1 。 陜西理工學院畢業(yè)設(shè)計 第 17 頁 共 80 頁 開 始l o w h i g h初 始 化p i v o t l o c = p a r t i t i o n ( l , l o w , h i g h ) 。結(jié) 束YYNNl o w h i g h amp。 amp。 陜西理工學院畢業(yè)設(shè)計 第 19 頁 共 80 頁 開 始j t amp。 開 始i n o d e s .l e n g t h初 始 化q = 0 。o r d e r [ p o s ] + + 。 AccessoryPanel(右邊JPanel )中加入 JList ,通過 (int[] i) 完成代碼跟隨。 for (。實現(xiàn)代碼如下: public void binaryInsertionSortToShow(String[] src, int index) { units = (src)。 while (low = high) { ......找出插入位置 } ().repaint()。 // 獲取顯示數(shù)據(jù) ().setUnits(units)。 } } 快速排序 將字符串數(shù)組封裝為 VectorUnit,同時利用 GUI 在 ContentPanel(中間 JPanel)中繪制數(shù)據(jù);將 ()切入到排序代碼中,完成數(shù)組拷貝與賦值。 //顯示內(nèi) 存處理 陜西理工學院畢業(yè)設(shè)計 第 23 頁 共 80 頁 //軸記錄關(guān)鍵字 String pivotkey = l[low]。 //臨時數(shù)據(jù)存儲 VectorUnit tmpUnits = new VectorUnit(ts+1)。k++) { ......將 sr[i...m] 和 sr[j...t]歸并 }//for end if(i = m) //將剩余的 sr[i...m]復(fù)制到 tmp中 { ......將剩余的 sr[i...m]復(fù)制到 tmp中 }//if end if(j = t) //將剩余的 sr[j...t]復(fù)制到 tmp中 { .....將剩余的 sr[j...t]復(fù)制到 tmp中 }//if end (tmp, 0, sr, s, )。實現(xiàn)代碼如下: public void updateNextToShow(Node[] nodes, int i, int ibefore) { ......初始化 i、 q、 p while ((nodes[i].getValue()).pareTo( (nodes[p].getValue())) 0) { ......找出插入的位置 } //代碼跟隨 ().setSelectIndexs(new int[]{8})。 } 堆排序 將字符串數(shù)組封裝為 VectorUnit,同時利用 GUI 在 ContentPanel(中間 JPanel)中繪制數(shù)據(jù)。 j = 2 * j) { if (j t amp。 (units, j1, i1)。實現(xiàn)代碼如下: public void msdToShow(String[] data, int power, int isGo,int index) { ......初始化顯示數(shù)據(jù) int pos = 0。 } //代碼跟隨 ().setSelectIndexs(new int[]{15})。 (30)。 陜西理工學院畢業(yè)設(shè)計 第 30 頁 共 80 頁 圖 歸并排序運行狀態(tài) 圖 歸并排序運行結(jié)果 點擊 堆排序 按鈕,并點擊開始按鈕,進入 堆排序 過程界面如圖 所示,運行結(jié)果界面如圖 所示。 通 過畢業(yè)設(shè)計的鍛煉,學到了很多東西: ① 鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運用本課程所學知識的能力。 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 陜西理工學院畢業(yè)設(shè)計 第 36 頁 共 80 頁 參考文獻 [1] 嚴蔚敏 ,吳偉民 .《數(shù)據(jù)結(jié)構(gòu)( C語言版)》 [M].北京: 清華大學出版社 ,20xx. [2] 朱戰(zhàn)立 .《數(shù)據(jù)結(jié)構(gòu)( C 語言版)》 [M].陜西: 西安交通大學出版社 ,. [3] 朱繼紅 .數(shù)據(jù)結(jié)構(gòu)算法動態(tài)示系統(tǒng)的設(shè)計與實現(xiàn) [J].信息工程學院學報 ,. [4] 張彬連 .數(shù)據(jù)結(jié)構(gòu)課程教學研究與改革 [J].計算機教育 ,. [5] 李鵬宇 .計算機開發(fā)與數(shù)據(jù)結(jié)構(gòu)模型應(yīng)用探究 [J].電子制作 ,. [6] 吳理華 .數(shù)據(jù)結(jié)構(gòu)課程設(shè)計教學過程的探索研究 [J].電腦知識與技術(shù) , [7] 林銳 ,韓永泉著 .《高質(zhì)量程序設(shè)計指南 —— C++/C 語言》 [M].北京: 電子工業(yè)出版社 ,20xx. [8] Bruce Eckel.《 Java 編程思想》 [M].北京: 機械工業(yè)出版社 ,. [9] Lan Sommerville.《軟件工程》 [M].北京: 機械工業(yè)出版社 ,. [10] 王克宏 ,董麗 ,朱家維 .《 Java 技術(shù)及其應(yīng)用》 [M].北京: 高等教育出版社 ,. [11] Mark Allen Weiss.《數(shù)據(jù)結(jié)構(gòu)與算法分析》 [M].北京: 機械工業(yè)出版社 ,20xx. [12] 蘇小紅 ,陳惠鵬 ,孫志崗 .《 C語言大學實用教程》 [M].北京: 電子工業(yè)出版社 ,20xx. [13]劉振安 .《 C語言程序設(shè)計》 [M].北京: 機械工業(yè)出版社 ,20xx. [14]R A Finkel,J L Trees A Data Structure for Retrieval on Composite Keys[J].Acta Informatica,. [15]J L Bentley,J H Structures for Rang。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。 陜西理工學院畢業(yè)設(shè)計 第 32 頁 共 80 頁 圖 鏈表排序運行狀態(tài) 圖 鏈表排序運行結(jié)果 點擊 基數(shù)( MSD)排序 按鈕,并點擊開始按鈕,進入 基數(shù)( MSD)排序 過程界面如圖 所示,運行結(jié)果界面如圖 所示。 if (isGo = 0) { msdToShowForLast(data, temp,index)。 temp[pos][order[pos]] = data[i]。 for (int i = 0。 } (0)。 (num[j]).pareTo( (num[j + 1]))0) j = j + 1。 AccessoryPanel(右邊 JPanel)中加入 JList,通過 (int[] i)完成代碼跟隨。 // q next修改 nodes[q].setNext(i)。 movingUnitList(units,tmpUnits,s,t)。 int i=s, k = 0,j = m+1。 //從表的兩端交替向中間掃描 while(low high) { ......從表的兩端交替向中間掃描 } ......將 l[0]插入到指定位置 return low。將().setSelectIndexs(new int[]{})。 int j = selectMinKeyToShow(src, index)。 j = high + 1。 //將 src[i]暫存在 src[0] src[0] = src[index]。 j) { //找出插入位置 } src[j + 1] = src[0]。該方法切入到排序代碼完成排序算法每一步實現(xiàn)效果。p o s = 0 。n o d e s [ i ] 和n o d e s [ p ] 比 較q = p 。 n u m [ j ] .c o m p a r e T o ( n u m [ j + 1 ] ) 0初 始 化j = j + 1 。i + + 。l [ h i g h ] 和 p i v o t k e y 比較Y+ + l o w 。q S o r t ( l , p i v o t l o c + 1 , h i g h ) 。結(jié) 束YYYNNN 圖 折半插入排序算法流程圖 (3) 選擇排序 選擇排序算法流程圖如圖 所示。結(jié) 束YNNs r c [ i ] s r c [ i 1 ]YNYY 圖 直接插入排序算法流程圖 排序算法動態(tài)演示系統(tǒng)