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

        ?

        基于Unity3D 的冒泡排序算法動態(tài)可視化設(shè)計(jì)及實(shí)現(xiàn)

        2021-03-12 15:23:54馬曉萍
        喀什大學(xué)學(xué)報 2021年6期
        關(guān)鍵詞:柱狀圖控件代碼

        馬曉萍

        (喀什大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,新疆喀什 844000)

        0 引言

        冒泡排序是一種典型的、穩(wěn)定排序算法[1],對初次接觸程序語言的學(xué)習(xí)者來說,排序算法比較抽象,對算法的理解存在較大的障礙。如何讓學(xué)生更好直觀的理解排序算法的原理并用程序語言實(shí)現(xiàn),是一個值得研究的問題。Unity3D 是一款實(shí)時3D 互動內(nèi)容創(chuàng)作和運(yùn)營平臺,所提供的可視化、實(shí)時三維動畫等類型互動內(nèi)容[2],具有強(qiáng)大的交互功能和豐富的三維表現(xiàn)。利用Unity3D 實(shí)現(xiàn)冒泡排序算法動態(tài)可視化,是一種有效的算法可視化方式,可促進(jìn)學(xué)習(xí)者對冒泡排序算法的理解。

        1 冒泡排序

        1.1 冒泡排序原理

        在程序設(shè)計(jì)語言的排序算法中,冒泡排序是一種平方級的原地排序算法[3]。冒泡排序算法的原理:在待排序的一組數(shù)中,將相鄰的兩個數(shù)值進(jìn)行比較,若前面的數(shù)值比后面的數(shù)值大就交換兩數(shù),把小數(shù)值放在前面,否則不交換;直至最終完成從小到大的排序。[4]

        1.2 C#語言實(shí)現(xiàn)

        冒泡排序算法的程序描述(C#語言)如下:

        上述代碼中,通過外層for循環(huán),用數(shù)組的長度控制整體程序的運(yùn)行次數(shù),內(nèi)層for用于與前后兩位數(shù)比較大小,如果存在第一個數(shù)比第二個數(shù)大,則兩個數(shù)利用中間變量temp,實(shí)現(xiàn)交換的邏輯。

        2 基于Unity3D 的冒泡排序算法可視化設(shè)計(jì)及實(shí)現(xiàn)

        2.1 冒泡排序三維動態(tài)可視化設(shè)計(jì)

        在Unity 中設(shè)計(jì)由一個Panel 容器控件,一個Text 文本控件,兩個Button 按鈕控件組成的UI 界面。Text控件文本內(nèi)容為“冒泡排序法三維動態(tài)可視化”,當(dāng)單擊“隨機(jī)生成數(shù)據(jù)”按鈕時,在Panel 容器控件上逐個動態(tài)生成隨機(jī)數(shù)據(jù)柱狀圖效果,此案例中隨機(jī)生成9 個1~100 的整數(shù),并產(chǎn)生以該整數(shù)作為動態(tài)柱狀圖的高度。當(dāng)單擊“開始冒泡排序”按鈕時,在Panel 容器控件上,開始進(jìn)行柱狀圖動態(tài)數(shù)據(jù)的交換,準(zhǔn)備比較的兩個柱狀圖變成綠色,等待排序比較,進(jìn)行完一輪比較后所產(chǎn)生的最大數(shù)柱狀圖變成紅色。

        2.2 實(shí)現(xiàn)隨機(jī)生成數(shù)據(jù)及動態(tài)生成效果

        2.2.1 隨機(jī)排序數(shù)據(jù)類的設(shè)計(jì)

        (1)設(shè)計(jì)一個RandomData 類用于生成隨機(jī)數(shù)。如圖1所示。

        圖1 RandomData類圖

        部分代碼如下:

        (2)利用協(xié)程機(jī)制動態(tài)生成柱狀圖的接口設(shè)計(jì).

        該接口中,go.GetComponent<Transform>().position 語句表示動態(tài)生成柱狀圖的位置,t.Get-Component<Transform>().position 語句表示隨機(jī)產(chǎn)生數(shù)據(jù)的文本顯示在當(dāng)前柱狀圖y 軸上方v.y+0.5位置。通過測試,Unity中無法直接調(diào)用接口,為了實(shí)現(xiàn)接口InitBarGraph()和接口Sort()的功能,本案例中編寫了兩個方法,使用StartCall()方法分別調(diào)用接口。調(diào)用接口InitBarGraph()參考代碼如下:

        動態(tài)生成隨機(jī)柱狀圖效果圖如下圖2所示。

        圖2 隨機(jī)柱狀圖

        2.2.2 冒泡排序類的設(shè)計(jì)

        (1)冒泡排序及柱狀圖顏色變化的接口設(shè)計(jì)。

        該接口主要實(shí)現(xiàn)設(shè)置準(zhǔn)備比較的兩個柱狀圖顏色、待排數(shù)的柱狀圖顏色,最大數(shù)的柱狀圖顏色,以及進(jìn)行柱狀圖動態(tài)數(shù)據(jù)的交換的冒泡排序功能,程序流程圖如圖3所示。

        圖3 可視化冒泡排序流程圖

        部分代碼如下:

        (2)柱狀圖的位置和高度的方法。

        該方法用以實(shí)現(xiàn)柱狀圖、柱狀圖上隨機(jī)數(shù)數(shù)字的位置和高度的設(shè)置,使得數(shù)據(jù)始終顯示在柱狀圖正上方的功能。

        部分代碼如下:

        (3)實(shí)現(xiàn)第一輪冒泡排序的效果圖如圖4 所示。

        圖4 第一輪冒泡排序效果圖

        3 結(jié)語

        本文利用Unity3D 平臺,以“C#程序設(shè)計(jì)”課程中的冒泡排序?yàn)榘咐?,利用協(xié)程動態(tài)生成隨機(jī)數(shù)據(jù)柱狀圖,并以三維動態(tài)可視化實(shí)現(xiàn)C#腳本語言的冒泡排序算法,直觀動態(tài)地展示了冒泡排序算法的基本思想和排序過程。實(shí)驗(yàn)證明,動態(tài)可視化的課程設(shè)計(jì),既通過Unity3D 創(chuàng)建三維動態(tài)互動內(nèi)容提高了學(xué)習(xí)者的學(xué)習(xí)興趣,又加深了學(xué)習(xí)者對冒泡排序算法原理的理解性,達(dá)到了良好的教學(xué)效果。

        猜你喜歡
        柱狀圖控件代碼
        繪制和閱讀降水量柱狀圖
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于Android平臺的柱狀圖組件的設(shè)計(jì)實(shí)現(xiàn)
        基于Excel-VBA的深水井柱狀圖繪制程序的設(shè)計(jì)和實(shí)現(xiàn)
        Mapgis在繪制鉆孔柱狀圖中的應(yīng)用
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        亚洲av手机在线一区| 成人午夜毛片| 东京热人妻一区二区三区| 色一情一乱一伦一区二区三欧美| 久久dvd| 色视频不卡一区二区三区 | 欧美牲交videossexeso欧美| 国产熟妇搡bbbb搡bb七区| 高清国产日韩欧美| 熟女少妇丰满一区二区| 国产女主播一区二区三区| 永久黄网站免费视频性色| 国产熟人av一二三区| 欧美日韩区1区2区3区| 精品国产一区二区av麻豆不卡| 六月婷婷亚洲性色av蜜桃| 色翁荡息又大又硬又粗视频| 色视频综合无码一区二区三区| 成熟丰满熟妇高潮xxxxx视频| 亚洲AⅤ无码片一区二区三区| 中文字幕丰满人妻被公强| 丰满少妇被猛烈进入高清播放| 三年片大全在线观看免费观看大全 | 日本一区二区三区在线观看视频| 手机在线观看av资源| 成人午夜特黄aaaaa片男男| 啪啪免费网站| 丝袜美腿av免费在线观看| 亚洲精品98中文字幕| 99国产精品久久久蜜芽| 日韩a毛片免费观看| 2021最新久久久视精品爱| 国产三级国产精品国产专区50| av人摸人人人澡人人超碰下载| 色妞ww精品视频7777| 狠狠色综合播放一区二区| 国产伪娘人妖在线观看| 爱爱免费视频一区二区三区| 一二区成人影院电影网| 亚洲欧美日韩国产色另类| 太大太粗太爽免费视频|