C語言II部落格作業02

2022-06-25 10:12:11 字數 2169 閱讀 4213

作業屬於哪個課程

班級的鏈結

這個作業要求在**

作業要求的鏈結

這個作業的目標

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

學號20208927

2.1 完成pta作業,並給出程式設計題完成截圖

2.2 題目:快速尋找滿足條件的兩個數

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

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

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

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

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

解法一:

解法二:

相比解法一的**,測試資料相同的情況下,**的執行的時間縮短了

解法三:

錯了

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

第一種,就是利用for迴圈遍歷,確定第乙個數,然後乙個乙個的與之後的計算並對比,是否和符合目標值

第二種,同樣利用for進行遍歷,但是先計算出目標數的大小,與之後的資料進行對比,相比第一種,它省略了一一計算的步驟,就節省了時間

第三種,先排序後從中計算。我的資料比較小,但是如果有100個數,運用二分法就只需要計算7次,而普通的遍歷迴圈需要30次。資料更大,二分法的優勢更明顯。(搜素次數:log2n)

2.3 請搜尋有哪些排序演算法,並用自己的理解對集中排序演算法分別進行描述(5分)

排序演算法:冒泡,選擇,插入,希爾,歸併,快遞,堆,計數,桶。

選擇排序:就是在先從序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

快速排序:在區間中隨機挑選乙個元素作基準,將小於基準的元素放在基準之前,大於基準的元素放在基準之後,再分別對小數區與大數區進行排序。

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

2.4 請給出本週學習總結

1 學習進度條(5分)周日期

----

----

第一周3.1

第二週3.10

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

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

要努力,要努力學習,加油。

氣泡排序

C語言II部落格作業02

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

C語言II部落格作業02

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

C語言II部落格作業02

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