C語言II部落格作業02

2022-07-05 17:18:13 字數 2576 閱讀 1671

1.作業頭

這個作業屬於哪個課程

這個作業要求在**

homework/11807

這個作業的目標

簡單掌握用一維陣列進行程式設計和選擇排序法

學號20208934

一、本週教學內容&目標

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

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

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

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

二、本週作業(總分:50分)

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

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

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

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

測試資料:

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

測試資料:

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

測試資料:

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

區別:演算法一:使用了窮舉,乙個乙個列舉出自己所輸入的值,然後再從中挑選出符合條件的兩個值,當數值很大時運算時間長

演算法二:這種演算法和第一種方法差不多,都需要多次遍歷陣列,時間複雜度比第三種演算法大。

演算法三:求出最大值和最小值和中值,利用二分查詢法的特性去求給定值

改進方法:無

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

答:有選擇排序,氣泡排序,快速排序,希爾排序,堆排序,插入排序,二分查詢法等。

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

二分查詢法:將一組數按一定順序排列,從首尾向中間值進行選擇,即最多隻需迴圈n/2次,大大減少了迴圈時間。

氣泡排序:從頭到尾走一遍陣列,一次比較兩個元素,如果有順序錯誤的元素就將兩個元素倒過來。

插入排序:通過構建有序序列,對於未排序的元素,在已排序序列中從後向前掃瞄,找到相應位置並插入。

2.4 請給出本週學習總結

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

1 學習進度條(5分)

周/日期

這週所花時間

**行學到的知識點簡介

目前比較迷惑的問題

第一周5h

160學會檔案讀取

有好多超出已知範圍內的東西

第二週7h

140掌握用一維陣列進行程式設計和選擇排序法

陣列的定義及使用

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

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

時間部落格字數

**行數

-----------------

---------------

-------

第一周1030

160第二週

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

感覺這學期學的東西比上學期又難了好多啊,好多東西都是懵懵懂懂的,之後要更加認真了。

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