資訊內容
學習scratch初識算法
算法是什么?這個詞看起來高大上,解釋起來就是解決問題的思路和方法。包括明確目標、提出問題、按照一定順序尋找解決問題的辦法、最終驗證程序。
? ? ? ?少兒學編程不是為了編寫大段的程序,而是為了培養好的思考習慣,為其他學科的學習打基礎。
? ? ? ?下面就拿排序算法作為例子講解思考過程。
? ? ? ? 排序算法是每個程序員都要學習的基礎,也是邏輯思考的基礎。排序算法有很多種:
? ? ? ??一列數1-10,隨機排列。5 3 1 2 6 8 9 7 10 4.提出問題:怎么把他們按照順序排列?
? ? ? ? 1.冒泡排序。他的思考過程是什么呢?首先我們想象有一個天平,把這個天平放在數列的最右端,然后比較天平上左右兩個數字的“重量”(大小)。如果右邊的比左邊的小,就把他移動到大數的左邊。比較完之后逐一向左移動天平,重復比較步驟。這樣就把數字1移動到了最左端。此時需要把天平再次移動到最右端,重復以上步驟。這樣就完成了從小到大的排序。就好像一個個冒泡泡一樣,所以叫冒泡排序。
? ? ? ? 到這里程序結束了么?不要忘了驗證!就是讓天平從左往右反順序比較一下天平兩端的數字,如果左邊的較大,就要返回錯誤代碼,讓程序員檢查。
? ? ? ?2.快速排序。快速排序是冒泡排序的優化版——看到了吧,算法就是思維的方法,不同的思考路徑帶來不同解決問題的方法。
思考方式:(1)在待排序的元素任取一個元素作為基準,稱為基準元素;
? ? ?( 2)將待排序的元素進行分區,比基準元素大的元素放在它的右邊,比其小的放在它的左邊;
? ? ? (3)對左右兩個分區重復以上步驟直到所有元素都是有序的。
所以我是把快速排序聯想成東拆西補或西拆東補,一邊拆一邊補,直到所有元素達到有序狀態。
下面再看看示圖理解下吧:
3.?選擇排序。顧名思義就是從數列中選擇最小的把它放在左邊。這是自然思考的結果,小朋友第一時間就會想到的方法。但是缺點顯而易見:如果數列中數太多,那么程序就會反復執行掃描(swap),并且是順序掃描,這樣下來程序效率就會很低了。
來看一下程序實現:
第一步挑選出一個數列中最小的數的下標。
第二步將最小的數與第一個位置的數交換,然后在剩下的數組中再尋找最小的數,找到后與第二個位置交換,以此類推最終實現所有數的排序。
? ? ? ?以上簡單介紹幾種排序算法,優劣各有千秋,需要自己總結完善。
? ? ???想象力是知識運用的基礎。方法只要去訓練21天都可以熟練掌握,但是想象力是沒有辦法訓練的。學習技能千萬不要扼殺孩子的想象力,尤其對于編程來講,如果沒有想象力,就算把指令倒背如流,也無法寫出高效的程序,更無法解決問題。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

- 上一篇
用Scratch編寫一個身邊的數學案例
小學暑假作業實踐活動,老師布置了"用身邊的數學解決生活中的問題"這一活動,結合即將到來的二年級數學知識點,我和天澤一起用scratch編寫了這一個案例。案例主要運用了數學知識點乘法、加法、長度單位等知識,來計算一5層樓高度的問題,“通過加法、乘法、長度單位等數學知識成功算出5層樓的高度為
- 下一篇
兒童編程:認識ScratchJr
前段時間,小朋友向我抱怨Scratch不好玩之后,為了保持她對編程的興趣,我們轉投了ScratchJr的懷抱。 ScratchJr 安裝方式: IPhone手機、IPad用戶:在app store 搜索“ScratchJr” 即可免費下載安裝a