freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

算法可視化演示軟件開發(fā)畢業(yè)設(shè)計(更新版)

2024-08-01 12:52上一頁面

下一頁面
  

【正文】 在以后的學(xué)習(xí)和生活中,能接觸更多的朋友,愿我的老師、朋友、同學(xué)都通過努力,取得更大的成功,生活過得越來越好。百度百科王老師嚴(yán)肅的學(xué)習(xí)態(tài)度和精益求精的工作作風(fēng),深深地感染和激勵著我。對我們做畢業(yè)設(shè)計有很大的幫助。由于平時編程編程編的得不是太多,對有些知識都不熟悉了,所以在編程的途中遇到了很多困難。return。 }else { (key)。插入按鈕事件監(jiān)聽器的實現(xiàn),輸入的數(shù)據(jù)不能為空,并且只能輸入整數(shù)的數(shù)據(jù):(new ActionListener(){public void actionPerformed(ActionEvent e){ String temp = ()。//設(shè)置邊界布局 add(jpview, )。}}//窗口設(shè)置為可見的實例化“插入”、“刪除”、“查找”這三個對象,并將這三個按鈕添加到 jpcontrol中:private BinaryTreeInteger tree 。 (10, 172, 66, 18)。 (輸入數(shù)據(jù)( , 隔開):)。 (插入排序)。 (data)。 else nums[i] = p。final JMenuItem openFileItemMenuItem = new JMenuItem()。其創(chuàng)建的方法如下:private void createContents() { frame = new JFrame()。 (arg0)。 (500, 500)。 private ActionListener arg0=new ActionListener() { public void actionPerformed(ActionEvent arg0) {//實現(xiàn)按鈕操作的響應(yīng)方法// TODO Autogenerated method stub if(()==sort){ //用來判斷發(fā)起事件的控件是不是sort (new Runnable() { // 導(dǎo)致 runnable 的 run 方法在 EventQueue 的指派線程上被調(diào)用 public void run() { try { MainSortApp window = new MainSortApp()。本次設(shè)計我們所用的算法最多的就是排序算法,類SelectSort 和 BubbleSort 以及類InsertSort都繼承了Sort。在排序算法的系統(tǒng)中主要是冒泡排序模塊、插入排序模塊、選擇排序模塊,實現(xiàn)排序算法的演示,而二叉查找樹模塊主要是實現(xiàn)二叉查找樹的插入、刪除、排序功能。二叉查找樹實現(xiàn)的功能① 二叉查找樹的插入演示。第一節(jié) 系統(tǒng)功能需求一、系統(tǒng)設(shè)計目標(biāo)開發(fā)軟件首先做的是開發(fā)過程中最主要的就是系統(tǒng)的需求分析[15],了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備獨立分析和能力;提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;設(shè)計并實現(xiàn)直觀、容易被理解的排序算法和二叉查找樹的動態(tài)演示系統(tǒng),是系統(tǒng)設(shè)計的目標(biāo)。當(dāng)有序表是靜態(tài)排序表時,易用順序表作為存儲結(jié)構(gòu),而采用二分排序?qū)崿F(xiàn)其排序操作。刪除操作的過程一般按三種情況來處理的:假如刪除的結(jié)點是A是葉結(jié)點,就可以直接刪了,而不會改變該二叉樹的性質(zhì)。在第i趟找到最小元素后,和第i個元素交換,可能會導(dǎo)致第i個元素與其含有相同關(guān)鍵字元素的相對位置發(fā)生改變,因此,簡單選擇排序是一個不穩(wěn)定的排序算法。穩(wěn)定性:由于每次插入元素時總是從后向前先比較再移動的,所以不會出現(xiàn)相同元素的相對位置發(fā)生變化,即直接插入排序算法是一個穩(wěn)定的排序算法。將L(i)復(fù)制到L(k)。由此可以總結(jié)出冒泡排序的優(yōu)點是具有穩(wěn)定性,缺點是慢,每次只能移動相鄰的兩個數(shù)據(jù)。每個事件有一個相應(yīng)的監(jiān)聽者接口,它規(guī)定了能夠接收(并處理)該類事件的方法的規(guī)范。調(diào)用容器的方法add()將組件加入容器,組件填入容器的順序?qū)凑盏谝恍械谝粋€、第一行第二個、……每個網(wǎng)格中都必須填入組件,假如希望是空白的網(wǎng)格,可以給它添加一個空的標(biāo)簽: add (new Label())。布局管理器種類FlowLayout: 在一行上水平排列組件,直到該行沒有足夠的空間為止,然后另起一行繼續(xù)排列當(dāng)用戶縮放容器時,布局管理器將自動進行控制,重新排列。在Java中還提供了支持用戶界面元素自動定位的布局工具。Java中的容器是用來放置其它組件的一種特殊部件(如標(biāo)簽、按鈕、文本框等),用Containers 來描述容器,容器組件Window 不需要其他組件支撐,獨立顯示。因此,它在運行時裝載了大量的類。⑤成熟穩(wěn)定:由于它是純Java實現(xiàn)的,不會有SWT的兼容性問題。③好的組件API模型支持:Swing遵循MVC模式,這是一種非常成功的設(shè)計模式。SUN公司推出了新的用戶界面庫:Swing,相對AWT來說,Swing功能更強大、使用更方便,它的出現(xiàn)是使得Java的圖形用戶上了一個臺階[7]。其中IBM的JDK包含的JVM(Java Virtual Machine)運行效率要比Sun JDK包含的JVM高出許多。尤其是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務(wù)應(yīng)用系統(tǒng)提供了豐富的類庫很相關(guān)技術(shù)。是解釋型的,而且是高性能的,是動態(tài)的[6]。它可以應(yīng)用在各種不同的平臺上,正逐步成為internet應(yīng)用的主要開發(fā)語言。第三節(jié) 論文結(jié)構(gòu)本次的論文共有六個章節(jié),詳細的闡述了算法可視化的具體實現(xiàn):第一章,主要介紹了研究的背景、內(nèi)容、目的和意義。而算法可視化是研究其它更深層次領(lǐng)域的基礎(chǔ),因此在研究其它領(lǐng)域的可視化前,我們必須先搞清楚算法可視化這個概念。并且本次畢業(yè)設(shè)計也選擇了不同的排序算法,這樣在演示的過程中,我們可以根據(jù)實現(xiàn)的復(fù)雜程度和執(zhí)行速度等方面為該系統(tǒng)選擇合適的排序算法,使之高效率運行,進而提高對排序算法的掌握程度[2]。此次設(shè)計算法可視化( Algorithm Visualizations)就是利用可視化技術(shù)將算法可視化[1]。此次畢業(yè)設(shè)計還選擇了二叉樹算法的動態(tài)演示,對研究二叉查找樹是很有幫助,讓大家更了解二叉查找樹的實際意義,對研究更復(fù)雜的數(shù)據(jù)庫關(guān)系打下了基礎(chǔ)。又加上如今信息產(chǎn)業(yè)在快速的發(fā)展信息的流通量越來越大,這些信息數(shù)據(jù)不僅龐大而且雜亂無章,很難管理和查詢,所以更加需要一種非??旖荻矣行У木幣攀侄蝸碚磉@些數(shù)據(jù)信息,提高我們的工作效率。第四章,明確項目模塊,進行系統(tǒng)概要設(shè)計。Java是由四個方面組成的:Java編程語言、Java類文件格式、Java虛擬機和Java應(yīng)用程序接口(Java API)。這樣對軟件的升級很有用。三、JDK 平臺相關(guān)信息本系統(tǒng)利用Java JDK作為開發(fā)平臺,利用它的可視化界面和圖形用戶界面在硬件環(huán)境:PC兼容機,1G 內(nèi)存以及軟件環(huán)境Microsoft Windows7操作系統(tǒng)(可以移植到大部分機器上)下一個演示不同的算法,利用Java編寫的圖形界面演示的動態(tài)交換過程。這些組件和SWT一樣豐富。它的API設(shè)計被認(rèn)為是最成功的GUI API之一。Swing完全由Java代碼實現(xiàn)。因此,Swing應(yīng)用程序通常會因無法及時回收冗余的對象而導(dǎo)致性能下降。Pane一定要放在Web瀏覽器窗口(或者Window組件)中才可以顯示。調(diào)用容器的setLayout(布局管理器對象) 方法,為容器指定某種布局管理器的一個對象。GridLayout(網(wǎng)格布局管理器)在你創(chuàng)建用戶界面時,經(jīng)常像將對象按網(wǎng)格一樣均勻排列,例如一行或者一列單選按鈕,它所確保的所有構(gòu)件占用的空間完全相同,創(chuàng)網(wǎng)格由應(yīng)占的行數(shù)和列數(shù)決定。事件 :說明“發(fā)生了什么事情”的對象。這里我假如是從從小到大排序,若為逆序(即A[i1]A[i]),則交換他們直到序列比較完,我們稱他們?yōu)橐惶嗣芭?,結(jié)果將最小的元素交換到待排元素的序列的第一個位置,下一趟冒泡時,前一趟確定的最小元素不再參與比較,待排序列減少一個元素,每趟冒泡的結(jié)果把序列中的最小元素放到了序列的最終位置,......,這樣最多做n1趟冒泡排序就把所有元素排好序[9]。由插入排序可以引申出三種重要的排序算法:直接插入排序、折半插入排序、希爾排序。時間效率:在排序過程中,向有序字表中逐個的插入元素的操作進行了n1趟,每趟操作都分為比較關(guān)鍵字和移動元素,而比較次數(shù)和移動次數(shù)是取決于排序表初始狀態(tài)的。三、選擇排序什么是選擇排序選擇排序的的基本思想是:每一趟(例如第i趟)在后面ni+1(i=1,2,...,n1)個待排序元素中選擇關(guān)鍵字最小的元素,作為有序元素序列的第i個元素,直到第n1趟做完,待排序元素只剩下一個,就不用選了。例如,下圖的二叉樹查找的中序遍歷的順序為234579,: 一棵二叉樹二叉查找樹的建立建立一顆二叉查找樹,就是要依順序輸入數(shù)據(jù)元素,然后將他們插入到二叉查找樹合適的位置的一個過程,其具體的過程,就是在每次輸入一個元素的時候,就要建立一個新的結(jié)點,如果二叉查找樹不是空的,就將新結(jié)點的值與根結(jié)點, 如果小于根結(jié)點的值,就要其插入到左子樹種,如果比根結(jié)點大,就需要將其插入到右子樹中。二叉查找樹的性能分析二叉查找樹的高度為H,它的插入和刪除操作的運行時間都是O(H),但是在最壞的情況下,即構(gòu)造二叉查找樹的輸入序列是有序的,就會形成一個傾斜的單支樹,此時二叉查找樹的性能就會明顯的變壞,樹的高度也增加元素N。在后面章節(jié)中,我們會一實際的算法可視化的例子來說明是如何實現(xiàn)相關(guān)功能的。② 實現(xiàn)對冒泡排序進行演示,并顯示排序前后的數(shù)組,排序所交換的次數(shù)、比較的次數(shù)、探測的次數(shù)及其所用的總的時間。第二節(jié) 系統(tǒng)運行環(huán)境本系統(tǒng)對運行環(huán)境的要求如下:硬件環(huán)境:①PC兼容機;②2G 內(nèi)存。第二節(jié) 模塊設(shè)計一、算法模塊設(shè)計排序算法模塊設(shè)計Sort類定義了排序算法的參數(shù),數(shù)組的長度,排序前的數(shù)組,以及排序后的數(shù)組,獲取排序參數(shù),打印排序前后的數(shù)組等一系列操作,是冒泡、選擇、插入的父類,: 排序類冒泡排序模塊設(shè)計BubbleSort類是從排序類繼承而來的,完成對冒泡排序的排序、:. 冒泡排序類選擇排序模塊設(shè)計SelectSort類是從排序類繼承而來的,完成對選擇排序的排序、:. 選擇排序類插入排序模塊設(shè)計InsertSort類是從排序類繼承而來的,完成對選插入序的排序、:二、界面模塊設(shè)計界面所含的主要繼承的類此次設(shè)計我們使用面向?qū)ο蟮脑O(shè)計模式,算的實現(xiàn)和可視化的部分寫在各自的類里面,可視化是采用圖形界面寫的。在對系統(tǒng)進行了需求分析和概要設(shè)計之后的,對系統(tǒng)進行了詳細的設(shè)計,分析了各個模塊的流程和步驟,并進行了流程的系統(tǒng)分析,繪出的本系統(tǒng)總體工作流程圖。 } }})。 (true)。//設(shè)置界面的大小 setLocationRelativeTo(null)。 (排序演示程序)。 int[] nums = new int[15]。i15。//定義按鈕 (冒泡排序)。 (sortRadio)。 ()。 (二叉查找樹演示)。 private JButton jbtInsert = new JButton(插入)。 (jtfKey)。return。刪除按鈕事件監(jiān)聽器的實現(xiàn),刪除的按鈕也只能是整數(shù)值,并且不能為空:(new ActionListener(){ public void actionPerformed(ActionEvent e)//相應(yīng)響應(yīng)動作 { String temp = ()。}else{ (key)。三、測試結(jié)果當(dāng)開始運行系統(tǒng)后就會顯示這個主界面,然后出現(xiàn)兩個按鈕,一個是“排序可是化”,另外一個是“二叉查找樹演示”,:若選擇的是排序可視化,:在左上角有一個下拉菜單其它路徑取數(shù)據(jù),我們可以隨機獲取數(shù)據(jù),我們可以選擇打開文件,我可以提前輸入小于20個少于650的數(shù)據(jù)在一個文本框里,在排序時,找到它所存儲的路徑,進行排序,:假如我們選取的是隨機獲取數(shù)據(jù)的話,就會生成15個隨機數(shù),:當(dāng)選擇冒泡排序時,就會以冒泡排序的算法進行排序,選擇冒泡排序前的數(shù)組、排序后的數(shù)組、比較次數(shù)、交換時間、探測次數(shù)、排序所花費的總時間就會顯示在界面上,::當(dāng)選擇的是文本文件時進行排序時,找到文本文件的路徑進行排序,:當(dāng)選擇的為二叉查找樹,插入一個數(shù),: 插入256后的二叉查找樹當(dāng)選擇的為二叉查找樹時,再插入一個數(shù),:然后繼續(xù)相同的方法插入數(shù)據(jù),:在本系統(tǒng)中,我們輸入的數(shù)據(jù)不能與前面的相同,當(dāng)256已經(jīng)在二叉查找樹中時,當(dāng)再插入256時,就會出現(xiàn)以下的結(jié)果,:當(dāng)刪除156之后,:當(dāng)刪除199,而此時199又不在樹中,就會顯示以下的結(jié)果,:在本系統(tǒng)中,我們輸入的數(shù)據(jù)只能是整數(shù),當(dāng)輸入一個小數(shù)時,就會得到以下的結(jié)果,:當(dāng)排序100時,:第二節(jié) 本章小結(jié) 本章對程序編寫過程中所遇到的問題,以及解決問題的方法進行了分析,同時通過對程序的實際測試,表明了程序的實際功能。又加上如今信息產(chǎn)業(yè)在快速的發(fā)展信息的流通量越來越大,這些信息數(shù)據(jù)不僅龐大,而且雜亂無章,很難管理和查詢,所以更加需要一種非??旖荻矣行У木幣攀侄蝸碚磉@些數(shù)據(jù)信息,提高我們的工作效率。在此我還要感謝我的輔導(dǎo)員白衛(wèi)華老師,是他陪伴我們走過了大學(xué)這四年,感謝他一直以來對我們的關(guān)心
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1