專(zhuān)業(yè)提供無(wú)毒且安全的軟件及游戲下載!
當(dāng)前位置:首頁(yè) > 安卓軟件 > 教育學(xué)習(xí) > 探月少兒編程手機(jī)版下載 v4.4.9 安卓版

探月少兒編程手機(jī)版下載 v4.4.9 安卓版

  • 大小:212.49MB
  • 日期:2024-09-11
  • 語(yǔ)言:簡(jiǎn)體中文
  • MD5:F0DF0CE9A17CE6C0662C2B11A7C861F9
  • 類(lèi)型:教育學(xué)習(xí)
  • 適用環(huán)境:android 、iOS
  • 隱私政策:查看
  • 包名:com.codemao.lunar
  • 廠商:深圳點(diǎn)貓科技有限公司
  • 備案號(hào):粵ICP備15030912號(hào)-21A

手機(jī)掃碼下載

軟件介紹

軟件介紹

探月少兒編程手機(jī)版是一款好用的在線編程教育軟件,一款能夠讓每一個(gè)少兒用戶(hù)都能在這里享受多維度在線編程學(xué)習(xí),每天都能讓你的孩子快速掌握編程知識(shí)。探月少兒編程手機(jī)版appr提供了最全的優(yōu)質(zhì)學(xué)習(xí)內(nèi)容,讓每一個(gè)孩子都可以在這里快速掌握最新的教學(xué)知識(shí),全新的編程課程天天閱讀,源碼課程在這里快速開(kāi)課,學(xué)習(xí)編程更容易。

探月少兒編程 第1張圖片

探月少兒編程手機(jī)版還有著好用的豐富括展探索玩法,學(xué)生可以在這里一站式體驗(yàn)KIDs圖形化編程、NOMO圖形化編程、KITTENN圖形化編程等等,讓孩子輕松學(xué)習(xí)編程。

軟件特色

1、每門(mén)課程內(nèi)容均配置專(zhuān)業(yè)教師進(jìn)行指導(dǎo),學(xué)習(xí)程序編寫(xiě)已不不孤獨(dú)。

2、課堂教學(xué)知識(shí)要點(diǎn)融于編程貓?jiān)瓌?chuàng)動(dòng)漫故事情節(jié)內(nèi),趣味性,nofungodie。

3、將程序編寫(xiě)專(zhuān)業(yè)知識(shí)與Steam等多綜合知識(shí)結(jié)合,五格數(shù)理、歷史時(shí)間、科學(xué)等知識(shí)要點(diǎn)一網(wǎng)打盡。

探月少兒編程手機(jī)版亮點(diǎn)

1、這款軟件十分有利于孩子培養(yǎng)關(guān)于計(jì)算機(jī)和關(guān)于編程的興趣愛(ài)好。

2、自己家里的孩子小小年紀(jì)就會(huì)編程,說(shuō)出去好像很有面子的樣子。

3、但是希望每一個(gè)小孩學(xué)習(xí)編程都是出于興趣,而不是為了家長(zhǎng)的面子。

探月少兒編程手機(jī)版優(yōu)勢(shì)

1、Python編程

真Python學(xué)習(xí)環(huán)境,簡(jiǎn)單易用。

2、數(shù)據(jù)科學(xué)

解鎖更多數(shù)據(jù)科學(xué)功能,培養(yǎng)學(xué)生數(shù)據(jù)思維。

3、圖形化編程

從圖形化到代碼,一個(gè)編程工具就搞定。

4、機(jī)器人編程

支持多種硬件搭配教學(xué),實(shí)現(xiàn)舞臺(tái)角色與機(jī)器人的豐富聯(lián)動(dòng)。

探月少兒編程手機(jī)版算法課程

一、冒泡排序

1、冒泡排序的概念

冒泡排序是最簡(jiǎn)單的排序算法,是在一列數(shù)據(jù)中把較大(或較?。┑臄?shù)據(jù)逐次向右推移的一種排序技術(shù)。

冒泡排序過(guò)程容易理解,每一輪加工都是將本輪最大(或最?。┑臄?shù)據(jù)移動(dòng)至右端。每個(gè)數(shù)如同水中的氣泡一樣,小的氣泡上升,被排到最上面;大的氣泡依次排在下面,這樣的過(guò)程可以比喻成“冒泡”。

2、冒泡排序的基本思想(以升序?yàn)槔?/p>

依次比較相鄰的兩個(gè)數(shù),將小數(shù)放在前面,大數(shù)放在后面。

第一輪從第1個(gè)元素開(kāi)始,讓它和第2個(gè)元素進(jìn)行比較,若出現(xiàn)反序(大數(shù)在前,小數(shù)在后)則交換;然后讓第2個(gè)元素與第3個(gè)元素進(jìn)行比較,若出現(xiàn)反序則交換;依次類(lèi)推,直到比較完最后一對(duì)元素為止。第一輪排序結(jié)束時(shí),最后一個(gè)元素為所有元素中的最大值。

接下來(lái)進(jìn)行第二輪比較。還是從第1個(gè)元素開(kāi)始,讓它和第2個(gè)元素比較,若出現(xiàn)反序則交換;然后讓第2個(gè)元素和第3個(gè)元素進(jìn)行比較,若出現(xiàn)反序則交換;依次類(lèi)推,直到比較完最后一對(duì)元素(即倒數(shù)第二對(duì)數(shù))為止。這樣,倒數(shù)第二個(gè)數(shù)為第二大的數(shù)。

依次排序下去,n個(gè)數(shù)排序共需要進(jìn)行n-1輪。

示例模擬

5  8  4  3  7

5  8  4  3  7  將5和8比較,不交換位置

5  4  8  3  7  將8和4比較,交換位置

5  4  3  8  7  將8和3比較,交換位置

5  4  3  7  8  將8和7比較,交換位置,8被移至末尾

3、冒泡排序算法框架(偽代碼)

冒泡排序采用雙層嵌套循環(huán)來(lái)實(shí)現(xiàn),外側(cè)循環(huán)控制排序的輪數(shù),內(nèi)層循環(huán)控制排序元素下標(biāo)的變化、以及數(shù)據(jù)對(duì)的比較。

for i (0 ~ n-1)       # 共進(jìn)行n-1輪排序

    for j (0 ~ n-1-i) # 第i輪排序(次數(shù))

        if 數(shù)據(jù)對(duì)反序,則:

            數(shù)據(jù)交換

4、冒泡排序程序的實(shí)現(xiàn)(升序)

a = [1, 3, 2, 5, 8, 7, 6]

count = len(a)

for i in range(0, count-1):

    for j in range(0, count-1-i):

        if a[j] > a[j+1]:

            a[j], a[j+1] = a[j+1], a[j]

print(a)

運(yùn)行結(jié)果如下:

[1, 2, 3, 5, 6, 7, 8]

思考一下,若要將列表中的元素降序排列,應(yīng)該如何修改程序?

是不是只需要將上述代碼中的大于號(hào)改成小于號(hào)即可?

5、思考題

(1)某書(shū)店在5所學(xué)校的流動(dòng)售書(shū)量(單位為本)分別是80、125、64、68、46。采用冒泡排序?qū)ζ溥M(jìn)行升序排列,完成第二輪時(shí)的結(jié)果是(  )

(2)有一組原始數(shù)據(jù):23、25、18、63、84、77、65、9、33、17。使用冒泡排序算法進(jìn)行從小到大排序,最多需要進(jìn)行(  )輪加工,才可以完成整個(gè)數(shù)據(jù)的排序。

A、5        B、6        C、8        D、9

二、選擇排序

1、選擇排序的概念

選擇排序算法是對(duì)冒泡排序算法的改進(jìn)。

選擇排序是在參加排序的所有元素中找出數(shù)值最?。ɑ蜃畲螅┑脑兀绻皇窃谧髠?cè)第一個(gè)元素,就讓它和最左側(cè)第一個(gè)元素互換位置;然后在余下的元素中找出數(shù)值最?。ɑ蜃畲螅┑脑?,如果它不在左側(cè)第二個(gè)元素,就讓它和最測(cè)第二個(gè)元素叫喚位置;以此類(lèi)推,直到所有元素成為一個(gè)有序的序列。

選擇排序算法符合人們?nèi)粘5呐判蛄?xí)慣。

在對(duì)n個(gè)元素排序的時(shí)候,選擇排序算法和冒泡排序算法的比較次數(shù)是相同的,但交換次數(shù)比冒泡排序要少,因此它具有更高的效率。

2、選擇排序的基本思想

n個(gè)數(shù)排序共需要進(jìn)行n-1輪。以從小到大排序?yàn)槔?/p>

第一輪,從第1個(gè)元素到第n個(gè)元素中找出一個(gè)最小的元素,如果它不是第1個(gè)元素,就讓它和第1個(gè)元素交換位置。第一輪排序結(jié)束時(shí),第1個(gè)元素就是最小的元素。

第二輪,從第2個(gè)元素到第n個(gè)元素中找出一個(gè)最小元素,如果它不是第2個(gè)元素,就讓它和第2個(gè)元素交換位置。第二輪排序結(jié)束時(shí),第2個(gè)元素就是第2小的元素。

以此類(lèi)推,第i輪排序,中第i個(gè)元素到第n個(gè)元素中找出一個(gè)最小的元素,最小元素的索引記作k,如果最小元素不在第i位上,即k!=i,就把最小元素和第i個(gè)元素叫喚位置,即:序列[i], 序列[k] = 序列[k], 序列[i]。

直到只剩下最后一個(gè)元素,排序結(jié)束。最后一個(gè)元素就是最大的元素。

3、選擇排序算法框架(偽代碼)

選擇排序算法同樣采用雙層嵌套循環(huán)來(lái)實(shí)現(xiàn),外側(cè)循環(huán)用來(lái)控制排序的輪數(shù),內(nèi)層循環(huán)用來(lái)控制排序元素的下標(biāo)變化范圍。每一輪排序過(guò)程中,都需要一個(gè)臨時(shí)變量存儲(chǔ)本輪排序中最小元素(或最大元素)的下標(biāo)。

for i in (0 ~ n-1)      # 共進(jìn)行n-1輪排序

    k = i

    for j in (i+1, n)   # 第i輪排序(次數(shù))

        if 找到一個(gè)比k位置更小的元素,則:

            用k記錄j的位置

    if i != k, 則:

        交換i和k位置上的數(shù)據(jù)

4、選擇排序程序的實(shí)現(xiàn)(升序)

a = [3, 4, 1, 2, 0, 9, 10]

count = len(a)

for i in range(0, count-1):

    k = i

    for j in range(i+1, count):

        if a[k] > a[j]:

            k = j

    if k != i:

        a[k], a[i] = a[i], a[k]

print(a)

運(yùn)行結(jié)果如下:

[0, 1, 2, 3, 4, 9, 10]

思考一下,如果按照降序排列,該如何修改程序?

體會(huì)變量k的用意。

與冒泡排序相比,選擇排序的優(yōu)劣是什么?

5、思考題

(1)用選擇排序算法對(duì)一組學(xué)生的身高數(shù)據(jù)進(jìn)行升序排序,已知第一輪排序結(jié)束后的數(shù)據(jù)序列為:166、169、177、175、172,則下列選項(xiàng)中可能是原始數(shù)據(jù)序列的是(  )。

A、175、177、169、166、172

B、177、169、166、175、172

C、166、177、169、175、172

D、166、169、172、175、177

(2)某校要采購(gòu)一套多媒體教學(xué)設(shè)備,有5個(gè)參考價(jià)位,分別如下:18萬(wàn)元、17萬(wàn)元、23萬(wàn)元、15萬(wàn)元、16萬(wàn)元。若采用選擇排序算法對(duì)價(jià)格從高到低排序,需要進(jìn)行數(shù)據(jù)交換的次數(shù)是(  )。

A、1        B、3        C、4        D、5

(3)下列關(guān)于排序的說(shuō)法,錯(cuò)誤的是(  )。

A、相對(duì)而言,選擇排序算法的效率比冒泡排序算法的效率高

B、冒泡排序算法和選擇排序算法都需要用到雙循環(huán)結(jié)構(gòu)

C、對(duì)于n個(gè)無(wú)序數(shù)據(jù),不管是冒泡排序還是選擇排序,都需要經(jīng)過(guò)n-1輪加工

D、冒泡排序算法的程序?qū)崿F(xiàn)一般要用到數(shù)組變量k,而選擇排序則不需要

三、插入排序

1、插入排序的概念

插入排序算法過(guò)程如下:先將待排序數(shù)列中的第1個(gè)元素看成一個(gè)有序的子序列,然后從第2個(gè)元素起,將其依次(從小到大或從大到?。┲饌€(gè)插入這個(gè)有序的子序列中,以此類(lèi)推到最后一個(gè)元素。這很像完撲克牌時(shí)一邊抓牌一邊理牌的過(guò)程,每抓到一張牌,就把它插到應(yīng)處的位置。

2、插入排序的基本思想

先將列表中的前兩個(gè)元素按順序排列(以升序?yàn)槔?/p>

然后,每次將下一個(gè)待排序元素,按其大小插入到前面已經(jīng)排好順序的序列中,使序列依舊有序,直到所有待排序元素全部插入完成。

3、實(shí)例演示

已知列表a=[5, 3, 5, 2, 8],對(duì)其升序排列。

第一輪插入(只要將第2個(gè)元素與第1個(gè)元素比較)

(1)先將待插入的元素a[1]暫存到變量key中;

(2)將key與前面已經(jīng)排序好的元素比較,key<a[0]成立,說(shuō)明key要插入到a[0]前面,將a[0]往后移一個(gè)位置,放到a[1]中;

(3)將key放入a[0]中。

第二輪插入(將第3個(gè)元素插入前面已排好的兩個(gè)元素序列中)

(1)先將待插入的元素a[2]暫存到變量key中;

(2)將key與前面已經(jīng)排好序的元素比較,key<a[1]不成立,說(shuō)明key要插入到a[1]后面,即a[2]中;

(3)將key放入a[2]中。

第三輪插入(將第4個(gè)元素插入到前面已排好的三個(gè)元素序列中)

(1)先將待插入的元素a[3]暫存到變量key中;

(2)將key與前面已經(jīng)排序序的序列比較,key<a[2]成立,說(shuō)明key要插入到a[2]前面,將a[2]后移一位,放到a[3]中;

(3)再比較前一個(gè)元素,key<a[1]成立,說(shuō)明key要插入到a[1]前面,將a[1]后移一位,放到a[2]中;

(4)再比較前一個(gè)元素,key<a[0]成立,說(shuō)明key要插入到a[0]前面,將a[0]后移一位,放到a[0]中;

(5)將key放入a[0]中。

第四輪插入(將第5個(gè)元素插入到前面已排好的4個(gè)元素序列中)

與第二次插入類(lèi)似,第個(gè)元素比a[3]大,應(yīng)該插入到a[3]后面,即位置保持不變。至此,插入排序完成。

4、插入排序程序?qū)崿F(xiàn)

示例程序(1)

a = [5, 3, 5, 2, 8]    # 初始化一個(gè)列表

for i in range(1, len(a)):    # 設(shè)定插入的輪數(shù)

    key = a[i]    # 將待排序元素暫存到變量key中

    j = i - 1    # 將待比較元素的索引存入變量j中

    while j >= 0 and a[j] > key:  # 元素比較

        a[j+1] = a[j]    # 將大元素往后移動(dòng)

        j -= 1          # 更新待比較元素的索引

        a[j+1] = key    # 將待插入元素往前移動(dòng)

print(a)              # 打印最終結(jié)果

運(yùn)行結(jié)果:

[2, 3, 5, 5, 8]

示例程序(2)

a = [5, 3, 5, 2, 8]    # 初始化一個(gè)列表

for i in range(1, len(a)):    # 設(shè)定插入的輪數(shù)

    j = i -1    # 將待比較元素的索引存入變量j中

    while j >= 0 and a[j] > a[i]:  # 元素比較

        j -= 1

    if j == 0:  # 如果待插入元素最小,將其插入到最前面

        a.insert(0, a[i])

    else:  # 如果待插入元素不最小,將其插入到j(luò)+1索引前

        a.insert(j+1, a[i])

    a.pop(i+1)  # 最后將待插入的原始數(shù)據(jù)刪除

print('a =, a')        # 打印最終結(jié)果

運(yùn)行結(jié)果:

a = [2, 3, 5, 5, 8]

四、順序查找

查找是程序和現(xiàn)實(shí)生活中經(jīng)常用到的方法,也是一種查詢(xún)數(shù)據(jù)的技術(shù),其目標(biāo)是以較少的步驟或在較短的時(shí)間內(nèi)找到所需的數(shù)據(jù)。

這里主要掌握順序查找和對(duì)分查找算法。

1、順序查找的概念

假設(shè)要從n個(gè)元素中查找元素x是否存在,最原始的方法就是從頭到尾依次查找,這種查找方法就是順序查找。

順序查找的基本思想是:從第一個(gè)元素開(kāi)始,按順序逐個(gè)將數(shù)據(jù)與給定的數(shù)據(jù)(查找鍵)進(jìn)行比較,若某個(gè)元素與查找鍵相等,則查找成功,輸出所查數(shù)據(jù)的位置;反之,輸出未找到。

2、順序查找的處理過(guò)程

假設(shè)列表a中有n個(gè)元素,查找鍵已經(jīng)存在變量key中。

從列表a中的第1 哥元素a[0]開(kāi)始,依次判斷各元素的值是否與key相等,若某個(gè)元素a[i]的值等于key,則找到了指定的數(shù)據(jù),對(duì)應(yīng)的位置索引為i,停止程序;若找遍了所有的n個(gè)元素,沒(méi)有一個(gè)元素的值等于key,輸出未找到,停止程序。

3、順序查找的程序?qū)崿F(xiàn)

在列表中查找元素26。

lst = [32, 17, 56, 25, 26, 89, 65, 12]  # 初始化列表

key = 26    # 初始化要查找的元素

b = -1      # 要查找元素的索引

m = len(lst) # 列表長(zhǎng)度

for i in range(0, m):

    if lst[i] == key:

        b = i

        break

if b == -1:    # -1 表示未找到

    print("要查找的元素 [" + str(key) + "] 不在列表lst中。")

else:

    print("要查找的元素 [" + str(key) + "] 的索引是:" + str(b))

4、思考題

(1)想一想,順序查找與枚舉算法的相似之處與不同之處。

(2)為查找課文第一次描寫(xiě)景色的自然段,小張同學(xué)打開(kāi)課本依次閱讀每一個(gè)自然段進(jìn)行查找。這種查找方法為(  )。

A、無(wú)序查找B、順序查找C、對(duì)分查找D、隨機(jī)查找

(3)在23、41、54、26、84、52、65、21中查找數(shù)字52,采用從后往前的順序查找,需要查找的次數(shù)是(  )。

A、2次B、3次C、7次D、1次

五、對(duì)分查找

如果在一堆無(wú)序的數(shù)列中查找某個(gè)數(shù),可以使用順序查找;如果在一個(gè)排好順序的有序數(shù)列中查找某個(gè)數(shù),除了順序查找,你還有更快、更簡(jiǎn)潔的查找算法嗎?

1、對(duì)分查找的概念

對(duì)分查找又稱(chēng)“二分查找”,是一種高效的查找方法。

對(duì)分查找的前提條件:被查找數(shù)據(jù)序列是有序的(升序或降序排列)。

對(duì)分查找的基本思想:首先將要查找的數(shù)據(jù)與有序數(shù)列內(nèi)處于中間位置上的數(shù)據(jù)進(jìn)行比較,如果兩者相等,則查找成功;否則根據(jù)數(shù)據(jù)的有序性,再確定該數(shù)據(jù)的范圍應(yīng)該在數(shù)列的前半部分還是后半部分;在新確定的縮小范圍內(nèi),繼續(xù)按上述方法進(jìn)行查找,直到找到要查詢(xún)的數(shù)據(jù),即查詢(xún)成功;如果要查詢(xún)的數(shù)據(jù)不存在,即查找失敗。

2、對(duì)分查找的處理過(guò)程

若key為查找鍵,列表a存放n個(gè)已按升序排序好的元素。在使用對(duì)分查找時(shí),把查找范圍[i, j]的中間位置上的數(shù)據(jù)a[m]與key進(jìn)行比較,結(jié)果必然有以下3中情況:

(1)若key<a[m],查找鍵key小于中間位置數(shù)據(jù)a[m]。由于列表a按升序排列,可以確定key的值應(yīng)該在列表a的前半段,即在新范圍(i, m-1)中繼續(xù)查找。

(2)若key=a[m],查找成功。

(3)若key>a[m],查找鍵key大于中間位置數(shù)據(jù)a[m]。可以斷定key應(yīng)該在列表a的后半段,所以應(yīng)該在新范圍(m+1, j)中繼續(xù)查找。

中間位置數(shù)據(jù)a[m]的下標(biāo)m的計(jì)算方法如下:

m = (i+j)//2 或 m = int((i+j)/2)

3、對(duì)分查找的程序?qū)崿F(xiàn)

(1)由于比較次數(shù)難以確定,所以用while語(yǔ)句實(shí)現(xiàn)循環(huán)。

(2)在while循環(huán)體中用if語(yǔ)句判斷查找是否成功。

(3)若查找成功則輸出查找結(jié)果,并用break語(yǔ)句結(jié)束循環(huán)。

(4)若查找不成功,則判斷查找鍵在數(shù)組的前半段還是后半段,從而縮小范圍,繼續(xù)查找。

假設(shè)列表 lst = [12, 17, 23, 25, 26, 35, 47, 68, 76, 88, 96],要查找元素 key = 25, 使用對(duì)分查找程序如下:

# 初始化變量

lst = [12, 17, 23, 25, 26, 35, 47, 68, 76, 88, 96]

key = 25

n = len(lst)

# i為左邊的索引號(hào),j為右邊的索引號(hào)

i, j = 0, n - 1

b = -1

# 執(zhí)行查找操作

while i <= j:    # 只要i小于等于j,就繼續(xù)查找

    m = (i + j) // 2    # 計(jì)算中間索引

    if key == lst[m]:  # 恰好找到目標(biāo)元素

        b = m    # 將目標(biāo)元素的索引賦值給b

        break    # 找到目標(biāo)元素,停止查找

    elif key > lst[m]:  # 如果目標(biāo)元素在列表后半段

        i = m +1    # 將左邊的索引移到中間偏后一位

    else:    # 如果目標(biāo)元素在前半段

        j = m -1    # 將右邊的索引移到中間偏前一位

# 查找完成之后,根據(jù)索引b的值判斷是否查找成功

if b == -1:    # -1 表示元素未找到

    print("要查找的元素 [" + str(key) + "] 不在列表lst中。")

else:

    print("要查找的元素 [" + str(key) + "] 的索引是:" + str(b))

4、對(duì)分查找的查找次數(shù)估算

對(duì)元素規(guī)模為n的列表進(jìn)行對(duì)分查找時(shí),無(wú)論是否找到,至多進(jìn)行l(wèi)og2(n)次查找就能得到結(jié)果;而使用順序查找算法,在最壞的情況下需要進(jìn)行n次查找,在最好的情況下需要查找1次,平均查找次數(shù)為(n+1)/2。

5、思考題

(1)下列有關(guān)查找的說(shuō)法,正確的是(  )。

A、順序查找時(shí),被查找的數(shù)據(jù)必須有序

B、對(duì)分查找時(shí),被查找的數(shù)據(jù)不一定有序

C、順序查找總能找到要查找的關(guān)鍵字

D、一般情況下,對(duì)分查找的效率較高

(2)某列表有7個(gè)元素,依次為:19、28、30、35、39、42、48。若采用對(duì)分查找算法在該列表中查找元素48,需要查找的次數(shù)是(  )。

A、1        B、2        C、3        D、4

六、模擬考題

(一)單選題:

1、編程大賽的成績(jī)排名,可以采用的算法是(  )。

A、解析算法B、枚舉算法C、排序算法D、查找算法

2、對(duì)一組初始記錄無(wú)序的數(shù)據(jù):7、9、3、2、5,使用用選擇排序算法,按照從小到大順序排列,則第一輪排序的結(jié)果為(  )。

A、7、 9、 2、 3、 5

B、2、 9、 3、 7、 5

C、2、 7、 9、 3、 5

D、2、 3、 5、 7、 9

3、L=[9, 2, 8, 6, 3, 4],采用選擇排序進(jìn)行升序排序,第二輪排序后的結(jié)果是(  )。

A、[2, 3, 8, 6, 9, 4]

B、[2, 8, 3, 6, 4, 9]

C、[2, 6, 3, 4, 8, 9]

D、[2, 3, 4, 6, 8, 9]

4、設(shè)一組初始記錄關(guān)鍵字序列為[5, 2, 6, 3, 7],利用插入排序算法進(jìn)行升序排序,則第二次插入排序的結(jié)果為(  )。

A、[5, 2, 3, 6, 7]

B、[2, 5, 3, 6, 7]

C、[2, 5, 6, 3, 7]

D、[2, 3, 5, 6, 7]

5、對(duì)于n個(gè)元素,利用順序查找算法,最壞的情況需要查找(  )次才結(jié)束。

A、n        B、n / 2        C、n**2        D、log2(n+1)

6、對(duì)于n個(gè)元素,利用對(duì)分查找算法,最壞的情況是查找(  )次才結(jié)束。

A、n        B、n / 2        C、n**1        D、log2(n)

(二)編程題

1、在一列表中產(chǎn)生n(n>=10)個(gè)50以?xún)?nèi)的數(shù)據(jù),刪除其重復(fù)的數(shù)據(jù)并按照升序輸出,同時(shí)輸出刪除數(shù)據(jù)的個(gè)數(shù)。

例如輸入:n = 10

隨機(jī)產(chǎn)生列表:a = [1, 2, 3, 7, 4, 7, 3, 8, 5, 7]

輸出:a = [1, 2, 3, 4, 5, 7, 8]

輸出:共刪除數(shù)據(jù)為3個(gè)

請(qǐng)編寫(xiě)程序?qū)崿F(xiàn)上述功能,或補(bǔ)全代碼。

import random

maxn = int(input("請(qǐng)輸入要產(chǎn)生的數(shù)據(jù)個(gè)數(shù):"))

_____1_____

for i in range(maxn):

    a.append(random.randrange(1, 50, 1))

print("原始數(shù)據(jù):", a)

key, n = 0, maxn

while key < n:

    i = n - 1

    while _____2_____ :

        i -= 1

    if i == key:

        key += 1

    else:

        a.remove( ____3____ )

        n -= 1

for i in range(n):

    for j in range(len(a)-1, i, -1):

        if a[j] < a[j-1]:

            a[j], a[j-1] = _____4_____

print("去重后排序數(shù)據(jù):", a)

print("共刪除數(shù)據(jù):", ____5____ , "個(gè)")

2、對(duì)于列表對(duì)象a = [7, 4, 7, 3, 9],用插入排序算法進(jìn)行升序排序,不分代碼如下,請(qǐng)補(bǔ)全代碼。

a = [7, 4, 7, 3, 9]  # 初始化列表

______1______

for i in range(1, count):

    key = ____2____

    j = i - 1

    while j >= 0 and a[j] > key:

        a[j+1] = a[j]

        _____3_____

        a[j+1] = key

print(a)

3、科技小組分兩個(gè)小隊(duì)搜集西紅柿生長(zhǎng)的數(shù)據(jù)信息。兩個(gè)小隊(duì)都將數(shù)據(jù)進(jìn)行了從小大大排序:a = [1, 3, 4, 6, 7, 13, 17, 21],b = [2, 5, 6, 8, 10, 12, 14, 16, 18]。請(qǐng)將這兩個(gè)小隊(duì)的數(shù)據(jù)進(jìn)行合并,生成一個(gè)從小到大排列的有序列表。

輸入:

1,3,4,6,7,13,17,21

2,5,6,8,10,12,14,16,18

輸出:

[1, 2, 3, 4, 5, 6, 6, 7, 8, 10, 12, 13, 14, 16, 17, 18, 21]

請(qǐng)編寫(xiě)程序?qū)崿F(xiàn)上述功能,或補(bǔ)全代碼。

x = input()

s = x.split(',')

a = []

for i in range(_____1_____):

    a.append(int(s[i]))

y = input()

s = y._____2_____

b = []

for i in range(len(s)):

    b.append(int(s[i]))

ret = []

i = j = 0

while len(a) >= i + 1 and _____3_____:

    if a[i] <= b[j]:

        _____4_____

        i += 1

    else:

        ret.append(b[j])

        j += 1

if len(a) > i:

    ret += a[i:]

if len(b) > j:

    _____5_____

print(ret)

下載地址
探月少兒編程手機(jī)版下載 v4.4.9 安卓版
本地下載地址:
僅下載APK文件
其它版本
用戶(hù)評(píng)論
所有評(píng)論(0)
昵稱(chēng):
(您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
關(guān)閉

需要授予該應(yīng)用的權(quán)限

讀取電話狀態(tài)
訪問(wèn)電話狀態(tài)
-------------------------------------
寫(xiě)入外部存儲(chǔ)
允許程序?qū)懭胪獠看鎯?chǔ),如SD卡上寫(xiě)文件
-------------------------------------
獲取網(wǎng)絡(luò)狀態(tài)
獲取網(wǎng)絡(luò)信息狀態(tài),如當(dāng)前的網(wǎng)絡(luò)連接是否有效
-------------------------------------
獲取WiFi狀態(tài)
獲取當(dāng)前WiFi接入的狀態(tài)以及WLAN熱點(diǎn)的信息
-------------------------------------
獲取任務(wù)信息
允許程序獲取當(dāng)前或最近運(yùn)行的應(yīng)用
-------------------------------------
使用振動(dòng)
允許振動(dòng)
-------------------------------------
錄音
錄制聲音通過(guò)手機(jī)或耳機(jī)的麥克
-------------------------------------
改變WiFi狀態(tài)
改變WiFi狀態(tài)
-------------------------------------
結(jié)束后臺(tái)進(jìn)程
允許程序調(diào)用killBackgroundProcesses(String).方法結(jié)束后臺(tái)進(jìn)程
-------------------------------------
拍照權(quán)限
允許訪問(wèn)攝像頭進(jìn)行拍照
-------------------------------------
喚醒鎖定
允許程序在手機(jī)屏幕關(guān)閉后后臺(tái)進(jìn)程仍然運(yùn)行
-------------------------------------
讀寫(xiě)系統(tǒng)設(shè)置
允許讀寫(xiě)系統(tǒng)設(shè)置項(xiàng)
-------------------------------------
改變網(wǎng)絡(luò)狀態(tài)
改變網(wǎng)絡(luò)狀態(tài)如是否能聯(lián)網(wǎng)
-------------------------------------
使用閃光燈
允許訪問(wèn)閃光燈
-------------------------------------
使用藍(lán)牙
允許程序連接配對(duì)過(guò)的藍(lán)牙設(shè)備
-------------------------------------
藍(lán)牙管理
允許程序進(jìn)行發(fā)現(xiàn)和配對(duì)新的藍(lán)牙設(shè)備
-------------------------------------
獲取精確位置
通過(guò)GPS芯片接收衛(wèi)星的定位信息定位精度達(dá)10米以?xún)?nèi)
-------------------------------------
訪問(wèn)賬戶(hù) Gmail列表
訪問(wèn)GMail賬戶(hù)列表
-------------------------------------

軟件投訴或糾錯(cuò)

問(wèn)題:
說(shuō)明:
郵箱: