999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Scratch算法練習(xí)

2020-06-30 17:02:55Intoweb
電腦報(bào) 2020年16期
關(guān)鍵詞:排序方法

Intoweb

1. 為什么要做算法練習(xí)

對(duì)于計(jì)算機(jī)來(lái)說(shuō),針對(duì)一個(gè)問(wèn)題選擇合適的解決方案的方法就是算法。算法可以是一系列的數(shù)學(xué)計(jì)算,也可以是一系列的操作步驟。總之,它存在的意義就是為了有針對(duì)性地解決問(wèn)題。每個(gè)問(wèn)題都有它獨(dú)特的一面,正所謂算法沒(méi)有最好的,只有最合適的。

軟件開發(fā)領(lǐng)域日新月異,編程語(yǔ)言會(huì)推陳出新,掌握的技術(shù)可能會(huì)淘汰,但算法卻是軟件不變的核心內(nèi)容。因此,學(xué)好算法能夠有效提高編程能力,以后也能更好地學(xué)習(xí)新語(yǔ)言。

2. 什么是眾數(shù)

找眾數(shù)(Mode)是計(jì)算機(jī)程序設(shè)計(jì)入門的經(jīng)典算法練習(xí)之一。在一組數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù)值,叫眾數(shù)(Mode),多用于統(tǒng)計(jì)目標(biāo)沒(méi)有明顯次序(如非數(shù)值性資料)無(wú)法良好定義算術(shù)平均數(shù)和中位數(shù)的情況。

例如:1,2,6,6,4,6的眾數(shù)是6。

有時(shí)眾數(shù)在一組數(shù)中有好幾個(gè),如果有兩個(gè)或兩個(gè)以上數(shù)值出現(xiàn)次數(shù)都是最多的,那么這幾個(gè)數(shù)值都是這組數(shù)據(jù)的眾數(shù)。

例如:1,2,2,3,3,4的眾數(shù)是2和3。

如果所有數(shù)值出現(xiàn)的次數(shù)都一樣,那么這組數(shù)據(jù)沒(méi)有眾數(shù)。

例如:1,1,2,2,3,3列表共6項(xiàng)3種數(shù)值,出現(xiàn)次數(shù)最多是2次,列表數(shù)字出現(xiàn)次數(shù)的平均數(shù)也為2,所以沒(méi)有眾數(shù)。

現(xiàn)有一個(gè)長(zhǎng)度為n的序列,請(qǐng)你編程求出它的眾數(shù)。當(dāng)然眾數(shù)可能有多個(gè),降低難度要求只需要輸出其中一個(gè)就可以了。

3. 算法分析

找眾數(shù)的算法有很多種比如“觀察法”、“金氏插入法”、“皮爾遜經(jīng)驗(yàn)法”等。由于題目只要求找到一個(gè)眾數(shù)即可,參考這些經(jīng)典算法后有以下幾種思路供你參考。

1) 方法一:每次取出列表第一項(xiàng),統(tǒng)計(jì)該項(xiàng)數(shù)值在列表中出現(xiàn)的次數(shù),記錄下來(lái),然后將該項(xiàng)刪除。這樣依次重復(fù)統(tǒng)計(jì)每項(xiàng)數(shù)值出現(xiàn)的次數(shù),直到列表為空。

用專門變量記錄出現(xiàn)次數(shù)最多的那個(gè)數(shù)值,這個(gè)數(shù)值可能就是數(shù)列中的眾數(shù)。

除此之外,我們還需要排除所有數(shù)值出現(xiàn)次數(shù)相同的情況,如果這個(gè)數(shù)值出現(xiàn)的次數(shù)>列表數(shù)值出現(xiàn)次數(shù)的平均數(shù),則代表眾數(shù)存在,否則就沒(méi)有眾數(shù)。數(shù)值出現(xiàn)次數(shù)的平均數(shù)=列表項(xiàng)目總數(shù)÷列表中數(shù)值的種類。

這種方法由于會(huì)刪除原列表1,所以是一種破壞型的方法。可以新增備份列表2解決這個(gè)問(wèn)題。

2) 方法二:統(tǒng)計(jì)列表1中每一項(xiàng)數(shù)值出現(xiàn)的次數(shù),一一對(duì)應(yīng)存儲(chǔ)到列表2中,然后從列表2中找到最大的那個(gè)數(shù),那么該項(xiàng)對(duì)應(yīng)列表1的數(shù)就可能是眾數(shù)。

再看列表2中所有數(shù)是不是都一樣,只要有一個(gè)不一樣,那么列表1就存在眾數(shù)。

3) 方法三:先排序,然后找出那個(gè)重復(fù)最多的數(shù)就是眾數(shù)了。這種方法用到了排序,排序有很多種算法,本文不再詳述,你可以根據(jù)以前介紹過(guò)的排序方法想想看如何實(shí)現(xiàn)。

4. 方法一代碼分析

依次對(duì)比并記錄重復(fù)次數(shù)最多的數(shù)值,并刪除對(duì)比過(guò)的數(shù)值(如圖1)。

1) 創(chuàng)建變量:眾數(shù)、眾數(shù)出現(xiàn)次數(shù)、有無(wú)眾數(shù)用來(lái)記錄成果。列表長(zhǎng)度、搜索項(xiàng)、搜索項(xiàng)次數(shù)、數(shù)字種類作為中間變量。index作為臨時(shí)變量。

2) 創(chuàng)建列表1,將隨機(jī)數(shù)加入這個(gè)列表。將列表1復(fù)制到備份列表2。解決找眾數(shù)過(guò)程中列表1會(huì)被刪除的問(wèn)題(如圖2)。

3) 初始化各個(gè)變量,有無(wú)眾數(shù)設(shè)為“無(wú)”,列表長(zhǎng)度為列表1項(xiàng)目數(shù)。

4) 把列表1第1項(xiàng)設(shè)為“搜索項(xiàng)”,依次比對(duì)整個(gè)列表,記錄該搜索項(xiàng)出現(xiàn)的次數(shù),并刪除所有與該搜索項(xiàng)相同的數(shù)值。這樣重復(fù)刪除直到列表1為空時(shí)就比對(duì)完成了。

5) 如果新的搜索項(xiàng)出現(xiàn)次數(shù)大于眾數(shù)出現(xiàn)次數(shù),將眾數(shù)設(shè)為該搜索項(xiàng),將眾數(shù)出現(xiàn)次數(shù)設(shè)為搜索項(xiàng)次數(shù)。當(dāng)列表被清空時(shí),眾數(shù)就是表中出現(xiàn)次數(shù)最多的數(shù)值了(如圖3)。

6) 判斷有無(wú)眾數(shù)。如果眾數(shù)出現(xiàn)次數(shù)大于數(shù)字出現(xiàn)的平均數(shù)就可以判斷有眾數(shù)了。如果有眾數(shù)就用連接塊整合輸出最終結(jié)果即可(如圖4,5)。

5. 方法二代碼分析

統(tǒng)計(jì)列表中每一項(xiàng)數(shù)值出現(xiàn)的次數(shù),從中找到最大數(shù),它對(duì)應(yīng)列表中的項(xiàng)就是眾數(shù)(如圖6)。

1) 定義變量:眾數(shù)是第幾項(xiàng)、眾數(shù)出現(xiàn)次數(shù)、有無(wú)眾數(shù)用來(lái)記錄眾數(shù)。搜索項(xiàng)、搜索項(xiàng)次數(shù)、列表長(zhǎng)度、index用來(lái)統(tǒng)計(jì)列表每項(xiàng)出現(xiàn)的次數(shù)。

2) 生成隨機(jī)列表1,建立列表2用于存儲(chǔ)列表1每項(xiàng)在列表中重復(fù)出現(xiàn)的次數(shù)。

3) 統(tǒng)計(jì)列表某一項(xiàng)在列表中出現(xiàn)的次數(shù)。把列表搜索項(xiàng)依次比對(duì)整個(gè)表格,將重復(fù)出現(xiàn)次數(shù)記錄在搜索項(xiàng)次數(shù)中并存入列表2(如圖7)。

4) 完成統(tǒng)計(jì)后列表2中記錄了每項(xiàng)重復(fù)出現(xiàn)的次數(shù),下面找出列表2中最大的項(xiàng)(如圖8)。

5) 找到列表2中最大的一項(xiàng)。從列表2第一項(xiàng)開始找到較大的項(xiàng)記錄在“眾數(shù)出現(xiàn)次數(shù)”中,重復(fù)“列表項(xiàng)目數(shù)”次就對(duì)比了全部項(xiàng),這時(shí)“眾數(shù)出現(xiàn)次數(shù)”就是列表中最大的項(xiàng),這項(xiàng)的順序位置記錄在“眾數(shù)是第幾項(xiàng)”中對(duì)應(yīng)到列表1中就找到這個(gè)列表的眾數(shù)了(如圖9)。

6) 在比對(duì)列表2中最大數(shù)的同時(shí),我們還要同時(shí)判斷列表是否有眾數(shù)。只要列表2中的數(shù)值有一次出現(xiàn)不相等,就代表列表1有眾數(shù)(如圖10)。

7) 輸出結(jié)果,完成循環(huán)。如果有眾數(shù),用連接塊將結(jié)果說(shuō)出來(lái)就可以了(如圖11)。

通過(guò)對(duì)兩種找眾數(shù)算法的簡(jiǎn)析,我們練習(xí)了兩種找眾數(shù)的算法。你可以根據(jù)對(duì)這個(gè)問(wèn)題的理解繼續(xù)改進(jìn)算法或找到新的算法,還可以試試看能不能找到列表中所有的眾數(shù)。

猜你喜歡
排序方法
排排序
排序不等式
恐怖排序
學(xué)習(xí)方法
節(jié)日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 91亚洲精品国产自在现线| 成人无码一区二区三区视频在线观看| 亚洲一区二区三区中文字幕5566| 国产AV无码专区亚洲精品网站| 999福利激情视频| 亚洲精品国产乱码不卡| 亚洲有无码中文网| 这里只有精品免费视频| 久久香蕉国产线| 久久五月天综合| 欧美一级片在线| 精品国产99久久| 99热在线只有精品| 狼友av永久网站免费观看| 亚洲无码高清一区| 免费一级毛片| 精品久久777| 国产精品 欧美激情 在线播放| 亚洲日韩高清无码| 欧洲亚洲欧美国产日本高清| 国产精品露脸视频| 91啪在线| 91美女视频在线| 四虎影视库国产精品一区| 久草国产在线观看| 国产精品一区在线麻豆| 国产极品美女在线| 亚洲无码A视频在线| 欧美中出一区二区| 国产乱人乱偷精品视频a人人澡| 91青草视频| 秋霞一区二区三区| 九色视频一区| 欧美日韩免费| 欧美日韩亚洲国产| 激情六月丁香婷婷| 国产精品.com| 亚洲综合久久成人AV| 青青草综合网| 国产中文在线亚洲精品官网| 色综合天天操| 婷婷亚洲最大| 亚洲一区网站| 国产精品久久久久久久久kt| 成人免费视频一区二区三区| 国内嫩模私拍精品视频| 欧洲亚洲欧美国产日本高清| 乱人伦视频中文字幕在线| 亚洲国产成人在线| 国产精品无码翘臀在线看纯欲| 亚洲综合精品第一页| 免费黄色国产视频| 极品私人尤物在线精品首页| 亚洲无码在线午夜电影| 亚洲国产系列| 亚洲日韩图片专区第1页| 国产高清精品在线91| 欧美精品伊人久久| 国产亚洲视频免费播放| 波多野结衣一区二区三区AV| 福利片91| 国产青榴视频| 人妻无码中文字幕第一区| 国产在线观看精品| 亚洲精品无码AV电影在线播放| 欧美亚洲欧美区| 中国一级毛片免费观看| 国产在线观看91精品亚瑟| 亚洲一级色| 77777亚洲午夜久久多人| 亚洲无码37.| 精品人妻一区二区三区蜜桃AⅤ| 免费一级全黄少妇性色生活片| 久久久精品国产亚洲AV日韩| 99ri精品视频在线观看播放| 日韩一区二区三免费高清| 欧美激情第一欧美在线| 91精品情国产情侣高潮对白蜜| 中文字幕人成人乱码亚洲电影| 久久精品最新免费国产成人| 国产主播喷水| 手机精品福利在线观看|