C語言II部落格作業02

2022-06-28 23:42:14 字數 1849 閱讀 2074

這個作業屬於哪個課程

這個作業要求在**

這個作業的目標

學習一維陣列,掌握選擇排序法和二分查詢法

學號20208960

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

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

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

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

解法一:

解法二:

解法三:

1.使用了if-else和for,迴圈迴圈結構複雜程度不同。

2.解法一雖然簡單易操作,但是效率並不高。

3.解法二,三陣列應用複雜程度更高。

排序方法:氣泡排序,選擇排序,插入排序,希爾排序,快速排序,歸併排序,堆排序。

氣泡排序:從陣列的第乙個元素開始到陣列最後乙個元素為止,對陣列中相鄰的兩個元素進行比較,如果位於陣列左端的元素大於陣列右端的元素,則交換這兩個元素在陣列中的位置,此時陣列最右端的元素即為該陣列中所有元素的最大值。接著對該陣列剩下的n-1個元素進行氣泡排序,直到整個陣列有序排列。

選擇排序:在要排序的一組數中,選出最小(或者最大)的乙個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後乙個數)比較為止。

插入排序:找到乙個數,與另外兩個數進行比較,若折合書比乙個數大,比另外乙個小就放在這兩個數中間。

快速排序:將陣列分為兩部分,小的一部分大的一部分然後進行比較。

歸併排序:先分組再進行兩兩歸併。

周\日期

所花時間

**行本週所學內容

問題第一周

3h300

學習以及了解資料

無第二週

4h400

了解陣列以及應用

演算法知識不理解

氣泡排序法的理解:

氣泡排序,類似於水中冒泡,較大的數沉下去,較小的數慢慢冒起來,假設從小到大,即為較大的數慢慢往後排,較小的數慢慢往前排;

直觀表達,每一趟遍歷,將乙個最大的數移到序列末尾。

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