- 相關(guān)推薦
算法設(shè)計(jì)心得體會(huì)
當(dāng)我們受到啟發(fā),對(duì)學(xué)習(xí)和工作生活有了新的看法時(shí),可以將其記錄在心得體會(huì)中,如此可以一直更新迭代自己的想法。那么好的心得體會(huì)是什么樣的呢?下面是小編精心整理的算法設(shè)計(jì)心得體會(huì),希望對(duì)大家有所幫助。
算法設(shè)計(jì)心得體會(huì)1
完成了這次的二元多項(xiàng)式加減運(yùn)算問題的課程設(shè)計(jì)后,我的心得體會(huì)很多,細(xì)細(xì)梳理一下,有以下幾點(diǎn):
1、程序的編寫中的語法錯(cuò)誤及修改
因?yàn)槲以诮鉀Q二元多項(xiàng)式問題中,使用了鏈表的方式建立的二元多項(xiàng)式,所以程序的空間是動(dòng)態(tài)的生成的,而且鏈表可以靈活地添加或刪除結(jié)點(diǎn),所以使得程序得到簡(jiǎn)化。但是出現(xiàn)的語法問題主要在于子函數(shù)和變量的定義,降序排序,關(guān)鍵字和函數(shù)名稱的書寫,以及一些庫函數(shù)的規(guī)范使用,這些問題均可以根據(jù)編譯器的警告提示,對(duì)應(yīng)的將其解決。
2、程序的設(shè)計(jì)中的邏輯問題及其調(diào)整
我在設(shè)計(jì)程序的過程中遇到許多問題,首先在選擇數(shù)據(jù)結(jié)構(gòu)的時(shí)候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關(guān)鍵字的情況下,在一種關(guān)鍵字確定了順序以后,在第一關(guān)鍵字相同的時(shí)候,按某種順序?qū)Φ诙P(guān)鍵字進(jìn)行排序。在此程序中共涉及到3個(gè)量數(shù),即:系數(shù),x的指數(shù)和y的指數(shù),而關(guān)鍵字排是按x的指數(shù)和y的指數(shù)來看,由于要求是降冪排序且含有2個(gè)關(guān)鍵字,所以我先選擇x的指數(shù)作為第一關(guān)鍵字,先按x的降序來排序,當(dāng)x的指數(shù)相同時(shí),再以y為關(guān)鍵字,按照y的指數(shù)大小來進(jìn)行降序排列。
另外,我在加法函數(shù)的編寫過程中也遇到了大量的問題,由于要同時(shí)比較多個(gè)關(guān)鍵字,而且設(shè)計(jì)中涉及了數(shù)組和鏈表的綜合運(yùn)用,導(dǎo)致反復(fù)修改了很長(zhǎng)的時(shí)間才完成了一個(gè)加法的設(shè)計(jì)。但是,現(xiàn)在仍然有一個(gè)問題存在:若以0為系數(shù)的項(xiàng)是首項(xiàng)則顯示含有此項(xiàng),但是運(yùn)算后則自動(dòng)消除此項(xiàng),這樣是正確的。但是當(dāng)其不是首項(xiàng)的時(shí)候,加法函數(shù)在顯示的時(shí)候有0為系數(shù)的項(xiàng)時(shí),0前邊不顯示符號(hào),當(dāng)然,這樣也可以理解成當(dāng)系數(shù)為0時(shí),忽略這一項(xiàng)。這也是本程序中一個(gè)不完美的地方。
我在設(shè)計(jì)減法函數(shù)的時(shí)候由于考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細(xì)研究算法,后來發(fā)現(xiàn)由于前邊的加法函數(shù)完全適用于減法,只不過是將二元多項(xiàng)式B的所有項(xiàng)取負(fù)再用加法函數(shù)即可,可見算法的重要性不低于程序本身。
3、程序的調(diào)試中的經(jīng)驗(yàn)及體會(huì)
我在調(diào)試過程中,發(fā)生了許多小細(xì)節(jié)上的問題,它們提醒了自己在以后編程的時(shí)候要注意細(xì)節(jié),即使是一個(gè)括號(hào)的遺漏或者一個(gè)字符的誤寫都會(huì)造成大量的錯(cuò)誤,浪費(fèi)許多時(shí)間去尋找并修改,總結(jié)的教訓(xùn)就是寫程序的'時(shí)候,一定要仔細(xì)、認(rèn)真、專注。
我還有一個(gè)很深的體會(huì)就是格式和注釋,由于平時(shí)不注意格式和注釋這方面的要求,導(dǎo)致有的時(shí)候在檢查和調(diào)試的時(shí)候很不方便。有的時(shí)候甚至剛剛完成一部分的編輯,結(jié)果一不注意,就忘記了這一部分程序的功能。修改的時(shí)候也有不小心誤刪的情況出現(xiàn)。如果注意格式風(fēng)格,并且養(yǎng)成隨手加注釋的習(xí)慣,就能減少這些不必要的反復(fù)和波折。還有一點(diǎn),就是在修改的時(shí)候,要注意修改前后的不同點(diǎn)在哪里,改后調(diào)試結(jié)果要在原有的基礎(chǔ)上更加精確。
算法設(shè)計(jì)心得體會(huì)2
通過兩周的課程設(shè)計(jì),完成了預(yù)定的目標(biāo),其中有很多的隨想。老師的題目發(fā)下來的很早,大概提前了3周,當(dāng)時(shí)就著手搜索有關(guān)線索二叉樹的思想,思路,借了一本《數(shù)據(jù)結(jié)構(gòu)-c語言描述》,在大體上就有了一個(gè)輪廓,先是輸入二叉樹,在對(duì)二叉樹進(jìn)行線索化,依次往下,但在具體實(shí)現(xiàn)時(shí),遇到了很多問題:首先是思想的確定,其非常重要,以前有了這個(gè)想法,現(xiàn)在愈加清晰起來,因此,花了大量的時(shí)間在插入刪除的具體操作設(shè)計(jì)上,大概三個(gè)晚上的時(shí)間,對(duì)其中什么不清晰明確之處均加以推敲,效果是顯著的,在上機(jī)上相應(yīng)的節(jié)約了時(shí)間。
通過具體的實(shí)驗(yàn)編碼,思路是對(duì)的,但是在小問題上摔了一次又一次,大部分時(shí)間都是花在這方面,這個(gè)節(jié)點(diǎn)沒傳過來啊之類的,以后應(yīng)該搞一個(gè)小冊(cè)子,記錄一些錯(cuò)誤的集合,以避免再犯,思想與C語言聯(lián)系起來,才是我們所需要的,即常說的`理論與實(shí)踐的關(guān)系。
數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)的一門課,對(duì)于有過編程經(jīng)驗(yàn)的人,結(jié)合自己的編程體會(huì)去悟它的思想;而且我覺得隨著編程經(jīng)歷的豐富對(duì)它的體會(huì)越深入,最初接觸是對(duì)一些思想可能只是生硬的記憶,隨著學(xué)習(xí)的深入逐漸領(lǐng)悟了很多?戳诉@次課程設(shè)計(jì)的題目,雖然具體要求沒有看清,但是總結(jié)一下,可以看出,其需要我們能把一個(gè)具體案例或一件事情反映為程序來表達(dá),數(shù)據(jù)結(jié)構(gòu)就是橋梁,通過自己的設(shè)計(jì),使應(yīng)用能力得以融匯,對(duì)與問題,具有了初步的分析,繼而解決之的能力,感覺對(duì)以后的學(xué)習(xí)會(huì)有很大的幫助,學(xué)習(xí)無非是用于實(shí)踐。
認(rèn)識(shí)到自己的不足,希望能有進(jìn)一步的發(fā)展。
算法設(shè)計(jì)心得體會(huì)3
算法設(shè)計(jì)是計(jì)算機(jī)科學(xué)中非常重要的領(lǐng)域,它涉及到許多復(fù)雜的技術(shù)和邏輯思維。在我的學(xué)習(xí)過程中,我對(duì)算法設(shè)計(jì)有了深刻的理解和體會(huì)。在本文中,我將分享我在算法設(shè)計(jì)方面的心得體會(huì)。
算法設(shè)計(jì)是計(jì)算機(jī)科學(xué)中最重要的研究方向之一。它是通過研究和分析不同的計(jì)算問題,以及它們的解決方案來提高計(jì)算機(jī)性能,提高效率以及減少程序的復(fù)雜性和錯(cuò)誤率。不同的算法具有不同的特點(diǎn),它們之間會(huì)有著不同的時(shí)間、空間復(fù)雜度以及適用的場(chǎng)景。掌握算法設(shè)計(jì)對(duì)于提高計(jì)算機(jī)應(yīng)用程序的性能和可擴(kuò)展性非常重要。
算法設(shè)計(jì)是一個(gè)非常復(fù)雜的過程,它涉及到許多的因素,如時(shí)間復(fù)雜度、空間復(fù)雜度、代碼風(fēng)格等等。為了實(shí)現(xiàn)有效的算法設(shè)計(jì),一個(gè)良好的流程非常重要。首先,需要清楚地定義問題和目標(biāo),應(yīng)通過研究和分析問題來確定一個(gè)具體的目標(biāo),從而可以確定優(yōu)化算法的方向。其次,需要探索現(xiàn)有算法,并選擇最優(yōu)的算法。這可以通過代碼復(fù)雜度和程序可讀性等方面的比較來判斷。最后,需要進(jìn)行實(shí)現(xiàn)和測(cè)試,根據(jù)測(cè)試結(jié)果來優(yōu)化代碼,以使算法得到最優(yōu)的優(yōu)化和改進(jìn)。
算法設(shè)計(jì)策略是指如何有效地實(shí)現(xiàn)一個(gè)良好的算法。在算法設(shè)計(jì)過程中,有許多的策略,像分治,動(dòng)態(tài)規(guī)劃、回溯、貪心、遞歸等等。合適的算法策略可以實(shí)現(xiàn)代碼優(yōu)化和效率提高,以及復(fù)雜度降低等效果。如在解決動(dòng)態(tài)規(guī)劃問題時(shí),可以配合貪心和遞歸策略,以及選擇合適的數(shù)據(jù)結(jié)構(gòu)、算法優(yōu)化和簡(jiǎn)化等,來達(dá)到最優(yōu)化的效果。
第四段:算法挑戰(zhàn)。
算法設(shè)計(jì)困難重重,解決不同的場(chǎng)景問題需要不同的算法和策略,有些問題還面臨噪聲和誤判等問題。在設(shè)計(jì)算法時(shí),我們需要仔細(xì)分析和規(guī)劃每一個(gè)步驟來達(dá)到較好的結(jié)果,不然可能會(huì)帶來負(fù)面的結(jié)果。同時(shí),一些問題的解決可能無法保證完美,我們應(yīng)該根據(jù)實(shí)際情況進(jìn)行合理的取舍。
算法設(shè)計(jì)是計(jì)算機(jī)科學(xué)中一個(gè)極其重要的領(lǐng)域,影響著人們的生活、工作和學(xué)習(xí)。算法設(shè)計(jì)在科技領(lǐng)域中有廣泛的應(yīng)用,如自動(dòng)駕駛,在線支付、人臉識(shí)別、語音識(shí)別、大數(shù)據(jù)處理等等。在實(shí)際應(yīng)用中,算法的設(shè)計(jì)和實(shí)現(xiàn)可以極大提高計(jì)算機(jī)程序的'效率和執(zhí)行速度,以滿足日益提高的用戶需求,也能推動(dòng)科技前進(jìn)。
總結(jié):
算法設(shè)計(jì)是計(jì)算機(jī)科學(xué)中最重要的研究方向之一,它具有很高的意義和實(shí)踐價(jià)值。掌握算法設(shè)計(jì)的流程、策略和挑戰(zhàn),可以大幅度提高計(jì)算機(jī)程序的性能和執(zhí)行效率,達(dá)到最優(yōu)化的效果。算法設(shè)計(jì)應(yīng)用廣泛,涉及到許多的實(shí)際場(chǎng)景和問題。算法設(shè)計(jì)不斷適應(yīng)和創(chuàng)新能力的提升,推動(dòng)科技能力不斷的向前發(fā)展。
算法設(shè)計(jì)心得體會(huì)4
一、實(shí)驗(yàn)內(nèi)容:
這學(xué)期的算法與設(shè)計(jì)課,老師布置了這四個(gè)問題,分別是貨郎擔(dān)問題,動(dòng)態(tài)生成二維數(shù)組,對(duì)話框下拉列表,排序問題。
二、學(xué)習(xí)掌握:
基本程序描述:
。1)貨郎擔(dān)問題:貨郎擔(dān)問題屬于易于描述但難于解決的著名難題之一,至今世界上還有不少人在研究它。貨郎擔(dān)問題要從圖g的所有周游路線中求取具有最小成本的周游路線,而由始點(diǎn)出發(fā)的周游路線一共有(n一1)!條,即等于除始結(jié)點(diǎn)外的n一1個(gè)結(jié)點(diǎn)的排列數(shù),因此貨郎擔(dān)問題是一個(gè)排列問題。貨郎擔(dān)的程序?qū)崿F(xiàn)了利用窮舉法解決貨郎擔(dān)問題,可以在城市個(gè)數(shù)和各地費(fèi)用給定的情況下利用窮舉法逐一計(jì)算出每一條路線的費(fèi)用,并從中選出費(fèi)用最小的路線。從而求出問題的解
(2)費(fèi)用矩陣:費(fèi)用矩陣的主要內(nèi)容是動(dòng)態(tài)生成二維數(shù)組。首先由鍵盤輸入自然數(shù),費(fèi)用矩陣的元素由隨機(jī)數(shù)產(chǎn)生,并取整,把生成的矩陣存放在二維數(shù)組中,最后把矩陣內(nèi)容輸出到文件和屏幕上。它采用分支界限法,分支限界法的基本思想是對(duì)包含具有約束條件的最優(yōu)化問題的所有可行解的解(數(shù)目有限)空間進(jìn)行搜索。該算法在具體執(zhí)行時(shí),把全部可行的解空間不斷分割為越來越小的子集,并為每個(gè)子集內(nèi)的解計(jì)算一個(gè)下界或上界。動(dòng)態(tài)生成二維n*n的數(shù)組程序利用指針表示數(shù)組的行和列,并逐一分配空間,在輸入n的數(shù)值后,系統(tǒng)自動(dòng)分配空間,生成n*n的數(shù)組,并產(chǎn)生隨機(jī)數(shù)填充數(shù)組,最后將結(jié)果輸入到指定文件中。
。3)Mfc:在下拉列表框中添加內(nèi)容程序,在下拉列表對(duì)應(yīng)的函數(shù)中利用addstring添加需要的內(nèi)容。首先定義下拉列表框?yàn)閏combox型,并定義其屬性名,利用addstring函數(shù)可以任意添加需要的內(nèi)容。a排序問題:快速排序的運(yùn)行時(shí)間與劃分是否對(duì)稱有關(guān),其最壞情況發(fā)生在劃分過程中產(chǎn)生的兩個(gè)區(qū)域分別包含n-1個(gè)元素和1個(gè)元素的時(shí)候。其算法的時(shí)間復(fù)雜度為O(n 2),在最好的情況下每次劃分的基準(zhǔn)恰好為中值,可得其算法時(shí)間復(fù)雜度為O(n㏒n)。 算法的實(shí)現(xiàn)和理解和代碼實(shí)現(xiàn)完全是兩回事,想要完全掌握一種算法,需要?jiǎng)邮謱?shí)踐,用代碼實(shí)現(xiàn),才能理解透徹,真正掌握。b對(duì)話框下拉列表:這個(gè)項(xiàng)目簡(jiǎn)單易懂,輕松實(shí)現(xiàn)。
三.疑問與總結(jié):
貨郎擔(dān)的問題,我認(rèn)為窮舉法相對(duì)比而言是比較初級(jí)的方法,費(fèi)時(shí)耗力,適合在練習(xí)時(shí)選用,但是在實(shí)際問題中不建議采用?唆斔箍柣蛘咂绽锬匪惴ㄇ笕∽钚∩蓸涞姆椒▉斫鉀Q貨郎擔(dān)的問題是更適合現(xiàn)實(shí)解決問題的。我認(rèn)為程序可以用switch函數(shù)來將函數(shù)分成幾個(gè)部分更人性化,比如分為解決問題的的選項(xiàng),輸出結(jié)果選項(xiàng),退出程序選項(xiàng)等。再有就是費(fèi)用矩陣的.值可以從文件中讀取,而結(jié)果也可以直接放在指定文件中,這樣在實(shí)際應(yīng)用中比較廣泛。
動(dòng)態(tài)生成二維數(shù)組的程序我認(rèn)為如果按照規(guī)范性,我的方法是中規(guī)中矩的,畢竟再向下延伸,生成三維的數(shù)組,需要三層的指針來實(shí)現(xiàn)。但是就程序的簡(jiǎn)化程度和計(jì)算機(jī)處理時(shí)間來說,我認(rèn)為這樣雙層指針的算法有些太占用內(nèi)存,畢竟要給行和列各分配n個(gè)空間。我通過與同學(xué)的交流,我發(fā)現(xiàn)可以用1位數(shù)組來實(shí)現(xiàn)二維的n*n的數(shù)組。首先分配n*n的空間,
然后通過循環(huán)在一行的數(shù)據(jù)達(dá)到n時(shí)自動(dòng)換行。這樣程序得到了一定的簡(jiǎn)化,并且減少了一定的內(nèi)存使用。我認(rèn)為這種方法是比較貼合實(shí)際的。
四.心得體會(huì)
在計(jì)算機(jī)軟件專業(yè)中,算法分析與設(shè)計(jì)是一門非常重要的課程,很多人為它如癡如醉。很多問題的解決,程序的編寫都要依賴它,在軟件還是面向過程的階段,就有程序=算法+數(shù)據(jù)結(jié)構(gòu)這個(gè)公式。算法的學(xué)習(xí)對(duì)于培養(yǎng)一個(gè)人的邏輯思維能力是有極大幫助的,它可以培養(yǎng)我們養(yǎng)成思考分析問題,解決問題的能力。
如果一個(gè)算法有缺陷,或不適合某個(gè)問題,執(zhí)行這個(gè)算法將不會(huì)解決這個(gè)問題。不同的算法可能用不同的時(shí)間、空間或效率來完成同樣的任務(wù)。一個(gè)算法的優(yōu)劣可以用空間復(fù)雜性和時(shí)間復(fù)雜度來衡量。算法可以使用自然語言、偽代碼、流程圖等多種不同的方法來描述。計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)、語言編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)以及各種各樣的計(jì)算機(jī)應(yīng)用系統(tǒng)中的軟件,都必須使用具體的算法來實(shí)現(xiàn)。算法設(shè)計(jì)與分析是計(jì)算機(jī)科學(xué)與技術(shù)的一個(gè)核心問題。因此,學(xué)習(xí)算法無疑會(huì)增強(qiáng)自己的競(jìng)爭(zhēng)力,提高自己的修為,為自己增彩。
【算法設(shè)計(jì)心得體會(huì)】相關(guān)文章:
預(yù)算法心得體會(huì)范文02-19
《導(dǎo)數(shù)運(yùn)算法則》教案01-09
完整版算法案例教案05-26
設(shè)計(jì)心得體會(huì)09-22
分?jǐn)?shù)除法的意義和計(jì)算法則教案02-26
加、減法的一些簡(jiǎn)便算法教案04-12
《教學(xué)設(shè)計(jì)》心得體會(huì)05-19
網(wǎng)頁設(shè)計(jì)心得體會(huì)04-22