C語言II—作業02


這個作業屬於哪個課程 https://edu.cnblogs.com/campus/zswxy/CST2020-2/
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11810
這個作業的目標 學習和運用數組,了解一些簡單的算法
學號 20208979

2.1 完成PTA作業,並給出編程題完成截圖(5分)




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

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


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


解法三:對數組進行排序,然后使用二分查找法針對arr[i]查找Sum-arr[i]。

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

區別:法一是最容易想到的思路通俗易懂容易接受。法二:和法一相比條件不同。法三:運用了算法在代碼運行上比其他兩種好。

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

答:排序方法:冒泡排序,選擇排序,插入排序,希爾排序,快速排序,歸並排序,堆排序。
冒泡排序:相鄰的兩個數進行比較。
選擇排序:從最小的排起,用第一個與后面進行比較,小的放到前面。
插入排序:找到一個數,與另外兩個數進行比較,若折合書比一個數大,比另外一個小就放在這兩個數中間。
希爾排序:對插入排序進行分組。
快速排序:將數組分為兩部分,小的一部分大的一部分然后進行比較。
歸並排序:先分組再進行兩兩歸並。
堆排序:與樹狀圖的形式差不多,堆頭與堆尾進行交換。

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

1 學習進度條(5分)

周/日期 所花時間 代碼數 本周所學知識 目前迷惑的地方
第一周 12h 108 文件和回顧數據類型和表達式
第二周 11h 80 一維數組 許多算法不會

2 累積代碼行和博客字數(5分)

3學習內容:

(1):學習了一維數組的運用。
(2):學習了排序算法冒泡法。
(3):了解了二維數組。

冒泡排序法

要運用雙重for循環第一次循環是要交換的次數,第二次循環是相鄰元素的交換若滿足條件就交換直到將最大值(最小值)像氣泡一樣升上去或沉下來。
上次PTA排序代碼(運用冒泡法)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM