C語言II部落格作業02

2022-06-27 15:24:11 字數 1661 閱讀 2532

這個作業屬於哪個課程

這個作業要求在**

homework/11808

這個作業的目標

《熟練的掌握陣列的編譯概念還有排序法》

學號<20209222>

第七章 陣列 7.17.1 輸出所有大於平均值的數

1.學生知道在哪種情況下可以使用構造資料型別—陣列進行資料的處理

2.掌握用一維陣列進行程式設計

3.掌握選擇排序法和二分查詢法

能否快速找出乙個陣列中的兩個數字,讓這兩個數字之和等於乙個給定的值,為了簡化起見,我們假設這個陣列中肯定存在至少一組符合要求的解。

解法一:採用窮舉法,從陣列中任意取出兩個數字,計算兩者之和是否為給定的數字。

解法二:對陣列中的每個數字arr[i]都判別sum-arr[i]是否在陣列中。

解法三:對陣列進行排序,然後使用二分查詢法針對arr[i]查詢sum-arr[i]。

要求:1.根據三種解法給出相應的**,並給出測試資料。(15分)

解法一:

解法二:

解法三:

2.請說明三種演算法的區別是什麼?你還可以給出更好的演算法嗎?(10分)

解法一的運用了for迴圈以窮舉的方式進行的。

解法二運用的是剛學的陣列。

解法三用的是上個下學期學的if-else語句。

等學習了更多知識再說吧現在為止還不能。

選擇排序法:在陣列中選擇乙個最大或者最小的數排在前面,再從剩下的數中選擇排在後面。

氣泡排序法:比如說公升序排列,那麼就依次相鄰兩個數比較大小,然後把大的數放在後面。

插入排序法:它通過構建有序序列,對於未排序的資料序列,在已排序序列中從後向前掃瞄,找到相應的位置並插入。

希爾排序法:希爾排序在插入排序的基礎上進行了改進,它的基本思路是先將整個資料序列分割成若干子串行分別進行直接插入排序,待整個序列中的記錄基本有序時,再對全部資料進行依次直接插入排序

快速排序法:首先從數列中挑出乙個元素,重新排序數列,所有比基準值小的元素擺放在基準前面,所有比基準值大的元素擺在基準後面(相同的數可以到任何一邊)。在這個分割槽結束之後,該基準就處於數列的中間位置。之後,在子串行中繼續重複這個方法,直到最後整個資料序列排序完成。

歸併排序法:歸併排序嚴格遵循從左到右或從右到左的順序合併子資料序列。

1 學習進度條(5分)

2 累積**行和部落格字數(5分)

3 學習內容總結和感悟(5分

總結:本週我們學習了陣列,陣列即相同型別資料的有序集合,在記憶體中連續存放。我們還自主學習了多種排序法。

感悟:通過本週學習,多種排序法要靈活運用,在解決程式設計題的時候,可以去找到最簡單的方法。

繼續努力,加油,多補充一些課外知識並產生對程式設計的濃厚興趣。

C語言II部落格作業02

作業屬於哪個課程 班級的鏈結 這個作業要求在 作業要求的鏈結 這個作業的目標 熟練運用陣列進行程式設計,學會使用一維陣列進行程式設計,掌握選擇排序法和二分查詢法 學號20208927 2.1 完成pta作業,並給出程式設計題完成截圖 2.2 題目 快速尋找滿足條件的兩個數 能否快速找出乙個陣列中的兩...

C語言II部落格作業02

這個作業屬於哪個課程 這個作業要求在 homework 11423 這個作業的目標 學習檔案的使用與知識 學號 20209165 1.學生知道在哪種情況下可以使用構造資料型別 陣列進行資料的處理 2.掌握用一維陣列進行程式設計 3.掌握選擇排序法和二分查詢法 能否快速找出乙個陣列中的兩個數字,讓這兩...

C語言II部落格作業02

這個作業屬於哪個課程 班級鏈結 這個作業要求在 作業要求的鏈結 這個作業的目標 掌握如何使用陣列並且正確解決問題 學號20208945 二 本週作業 2.1 完成pta作業,並給出程式設計題完成截圖 2.2 題目 快速尋找滿足條件的兩個數 能否快速找出乙個陣列中的兩個數字,讓這兩個數字之和等於乙個給...