C語言II部落格作業02

2022-06-29 18:57:11 字數 2071 閱讀 4043

這個作業屬於哪個課程

這個作業要求在**

/homework/11808

這個作業的目標

掌握用一維陣列進行程式設計,選擇排序法和二分查詢法

學號20209206

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

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

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

第一題:

第二題:

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

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

輸入的數

輸出的結果

20與2

40與4 1與3

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

輸入的數

輸出的結果

50與5 1與4 2與3

60與6 1與5 2與4

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

輸入的數

輸出的結果

50與5 1與4 2與3

60與6 1與5 2與4

窮舉法的邏輯性很簡便,就是一一枚舉出來,很容易理解。第二種以及第三種是屬於那種需要動腦筋的,比較窮舉法來說不是一步到位,但是會比窮舉法更簡單。

排序就是把集合中的元素按照一定的次序排序在一起。一般來說有公升序排列和降序排列2種排序,在演算法中有8中基本排序。

(1)氣泡排序:它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從z到a)錯誤就把他們交換過來

(2)選擇排序:第一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小(大)元素,然後放到已排序的序列的末尾

(3)插入排序:將乙個記錄插入到已經排好序的有序表中,從而乙個新的、記錄數增1的有序表。在其實現過程使用雙層迴圈,外層迴圈對除了第乙個元素之外的所有元素,內層迴圈對當前元素前面有序表進行待插入位置查詢,並進行移動

(4)歸併排序:先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表

(5)快速排序:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序

(6)基數排序:它是透過鍵值的部份資訊,將要排序的元素分配至某些「桶」中,藉以達到排序的作用

(7)計數排序;快於任何比較排序演算法

1 學習進度條(5分)

周次這周所花的時間

**行學到的知識點簡介

目前比較迷惑的問題

第一周1天半

155什麼是檔案,編寫測試檔案程式

檔案的使用

第二週2天

100掌握用一維陣列進行程式設計,選擇排序法和二分查詢法

選擇排序法和二分查詢法

2 累積**行和部落格字數

3 學習內容總結和感

感悟:多做題多思考,在多寫**的過程中不僅可以鞏固已學的知識還可以學習到新的知識,並且還能讓自己更加的熟練。日積矽步才能以致千里。

C語言II部落格作業02

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

C語言II部落格作業02

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

C語言II部落格作業02

這個作業屬於哪個課程 這個作業要求在 homework 11808 這個作業的目標 熟練的掌握陣列的編譯概念還有排序法 學號 20209222 第七章 陣列 7.17.1 輸出所有大於平均值的數 1.學生知道在哪種情況下可以使用構造資料型別 陣列進行資料的處理 2.掌握用一維陣列進行程式設計 3.掌...