資源描述:
《對分查找算法及程序?qū)崿F(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、對分查找算法及程序?qū)崿F(xiàn)一、設(shè)計思想對分查找是計算機科學(xué)中的一個基礎(chǔ)算法。對于一個基礎(chǔ)算法的學(xué)習(xí),同樣可以讓學(xué)生在一定的情境下,經(jīng)歷分析問題、確定算法、編程求解等用計算機解決問題的基本過程。本堂課以一個游戲暖場,同時激活學(xué)生的思維,引導(dǎo)學(xué)生去探索游戲或生活背后的科學(xué)原理。為了讓學(xué)生在教師的引導(dǎo)下能自我解析算法的形成過程,本課分解了問題動作,找出問題的全部可能情況,在對全部可能情況總結(jié)歸納的情況下,得出對分查找的基礎(chǔ)算法,最后在程序中得到實現(xiàn),從而使學(xué)生建立起對分查找算法形成的科學(xué)邏輯結(jié)構(gòu)。二、教材分析本課的課程標(biāo)準(zhǔn)內(nèi)容:(一)計算機解決問題的基本過程(1)結(jié)合實例,經(jīng)歷分
2、析問題、確定算法、編程求解等用計算機解決問題的基本過程,認識算法和程序設(shè)計在其中的地位和作用。(三)算法與問題解決例舉C查找、排序與問題解決(2)通過實例,掌握使用數(shù)據(jù)查找算法設(shè)計程序解決問題的方法。本課的《學(xué)科教學(xué)指導(dǎo)意見》內(nèi)容:基本要求:1.初步掌握對分查找算法。2.初步掌握對分查找算法的程序?qū)崿F(xiàn)。教材內(nèi)容:第二章算法實例從《課程標(biāo)準(zhǔn)》和《學(xué)科教學(xué)指導(dǎo)意見》對本課教學(xué)內(nèi)容的要求來看,要求學(xué)生能從問題出發(fā),通過相應(yīng)的科學(xué)步驟形成對分查找的算法。對學(xué)生來說,要求通過這一課時的學(xué)習(xí)能初步掌握或了解對分查找的前提條件、解決問題的對象,明確對分查找算法結(jié)構(gòu)和對分查找的意義。三
3、、學(xué)情分析學(xué)生應(yīng)該已經(jīng)掌握程序設(shè)計的基本思想,掌握賦值語句、選擇語句、循環(huán)語句的基本用法和VB基本操作,這節(jié)課學(xué)生可能會遇到的最大問題是:如何歸納總結(jié)對分查找解決不同情況問題的一般規(guī)律,鑒于此,在教學(xué)中要積極引導(dǎo)學(xué)生采取分解動作、比較遷移等學(xué)習(xí)策略。(說明:由于這個課是算法與程序設(shè)計課,對學(xué)生有一定的要求,學(xué)生至少應(yīng)該熟悉算法的基本概念,掌握順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),天津的學(xué)生雖然學(xué)的是Java,但是在算法這一塊上都是相通的,如果對算法流程,三種基本結(jié)構(gòu)原理和語句如果都掌握的話,理解這個課應(yīng)該沒什么大的問題,VB只是一個程序?qū)崿F(xiàn)的工具。但如果學(xué)生沒有較好的算法基礎(chǔ),
4、沒有前續(xù)的知識作輔墊,這節(jié)課會比較困難,教師就要靈活處理。)四、教學(xué)目標(biāo)知識與技能:理解對分查找的概念和特點,通過分步解析獲取對分查找的解題結(jié)構(gòu),初步掌握對分查找算法的程序?qū)崿F(xiàn)。過程與方法:通過分析多種不同的可能情況,逐步歸納對分查找的基本思想和方法,確定解題步驟。情感態(tài)度與價值觀:通過實踐體驗科學(xué)解題的重要性,增強效率意識和全局觀念,感受對分查找算法的魅力,養(yǎng)成始終堅持、不斷積累才能獲得成功的意志品質(zhì)。五、重點難點教學(xué)重點和難點:分解并理解對分查找的過程。六、教學(xué)策略與手段1、教學(xué)線索:游戲引領(lǐng)---提出對分查找原理---解析對分查找的算法特征---實踐解決問題。2、
5、學(xué)習(xí)線索:分解問題---歸納問題---實踐提升,在三個階段的不斷推進中明確對分查找算法,總結(jié)規(guī)律。七、教學(xué)過程1、新課導(dǎo)入(1)熱身:游戲(2分鐘)教師展示一件特色物品,讓一個學(xué)生來猜這個物品的價格,其他學(xué)生只需要根據(jù)這個學(xué)生猜出的價格提示“高了”或是“低了”,如果學(xué)生能在約定次數(shù)內(nèi)猜對這個物品的價格,就把這件物品“贈送”給他……。(2)討論:你覺得怎么樣猜可以猜的快一點呢?有什么技巧嗎?你從這個游戲當(dāng)中得到什么啟示?(2分鐘)(3)教師引導(dǎo):這個世界不是缺少問題,而是缺少發(fā)現(xiàn),其實在這個游戲的背后,含有一個非常經(jīng)典的算法。引出對分查找的的概念。(1分鐘)2、新課:教學(xué)
6、步驟一:分析對分查找的原理和方法。(3分鐘)(1)對分查找是效率很高的查找方法,但被查找的數(shù)據(jù)必須是有序的。(2)首先將查找的數(shù)與有序數(shù)組內(nèi)處于中間位置的數(shù)據(jù)比較,如果中間位置上的數(shù)與查找的數(shù)不同,根據(jù)有序性,就可確定應(yīng)該在數(shù)組的前半部分還是后半部分繼續(xù)查找。(3)在新確定的范圍內(nèi),繼續(xù)按上述方法進行查找,直到獲得最終結(jié)果。教學(xué)步驟二:分解查找過程中可能出現(xiàn)的所有情況。(第一種情況5分鐘)52484535272218171510midi=jd(10)d(9)d(8)d(7)d(6)d(5)d(4)d(3)d(2)d(1)(1)第一種情況:要找的值在后半部分;以查找鍵KE
7、Y=48為例分析第一次查找::范圍d(1)~d(10),mid=└(1+10)/2┘,d(mid)<Key所以可以確定接下來要找的范圍是后半部分。比較后i=mid+1midij52d(10)48d(9)45d(8)35d(7)27d(6)第二次查找:范圍d(6)~d(10),mid=└(6+10)/2┘,d(mid)<Key所以可以確定接下來要找的范圍是后半部分。比較后:i=mid+1midij52d(10)48d(9)范圍d(9)~d(10),mid=└(9+10)/┘2,d(mid)=Key,找到了。思考:如果要找的是52