C語言II部落格作業02

2022-06-28 11:42:07 字數 2026 閱讀 1899

這個作業屬於哪個課程

這個作業要求在**

homework/11807

這個作業的目標

學習陣列的使用

學號20208953

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

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

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

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

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

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

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

解法一

解法二

解法三

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

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

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

第三種,先排序後從中計算。二分法的運算的速度快,優勢明顯比另外兩個大。

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

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

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

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

氣泡排序:它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。

2.4 請給出本週學習總結(15分)

1.學習進度條

周這周所花時間

**行學到的知識簡介

目前比較迷惑的地方

第一周10小時

200檔案

檔案的有關問題

第二週12小時

212陣列的使用

標頭檔案的使用和陣列的定義

累積**行和部落格字數

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

感悟:答:(1)自己平時好好聽老師講課,自己多花時間在這上面。

(2)花時間找出自己的知識誤區。

氣泡排序:

在所有的數中找到最大的與序號為1的數字交換位置,然後將這個數排除,繼續在後面的數字中找最大的與序號為2的交換位置再將這個數排除,繼續按這個方式進行(n-1)次。又因為這個是大的在前面所以就像水裡的水泡一樣在上面越來越大,所以又叫氣泡排序。

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.掌...