C語言II部落格作業02

2022-06-30 07:21:09 字數 1964 閱讀 7785

1.作業頭

這個作業屬於哪個課程

這個作業要求在**

/homework/11822

這個作業的目標

掌握陣列

學號20209169

一、本週教學內容&目標

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

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

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

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

二、本週作業

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

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

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

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

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

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

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

測試資料

結果5 8 4 4 2 6 9

4 4和2 6

測試資料

結果5 4 4 0 6 2 3

4 0和6 2

1.根據三種解法給出相應的**,並給出測試資料。

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

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

常見的內部排序演算法有:插入排序、希爾排序、選擇排序、氣泡排序、歸併排序、快速排序、堆排序、基數排序等。

按穩定性也可以分為穩定排序和不穩定排序

歸併排序也稱合併排序,是分治法的典型應用。分治思想是將每個問題分解成個個小問題,將每個小問題解決,然後合併。

選擇排序是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到

排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所

有元素均排序完畢。

希爾排序,也稱遞減增量排序演算法,希爾排序是非穩定排序演算法。該方法又稱縮小增量排序,因dl.shell於2023年提出而得名。

先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。所有距離為d1的倍數的記錄放在同乙個組中。先在各組內進行排序;

然後,取第二個增量d2

快速排序演算法和合併排序演算法一樣,也是基於分治模式

2.4 請給出本週學習總結h

1 學習進度條

| 日期 | 學習時間 |

| ---- | ---- | ---- |

| 3.8-3.12 | 5h |

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

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