C語言II部落格作業02

2022-07-03 03:57:15 字數 2396 閱讀 4771

這個作業屬於哪個課程

班級的鏈結

這個作業要求在**

作業要求的鏈結

這個作業的目標

學號20209039

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

n資料數值結果

513 15 156 145 143

15813,145 ;15,143

101 2 3 4 5 6 7 8 9 0

51,4;2,3

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

n資料數值結果

513 15 156 145 143

15813,145 ;15,143

103 2 11 4 8 5 10 7 9 22

53,2

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

n資料數值結果

70 12 8 54 17 16 13

2512,13;8,17

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

1:窮舉法是將元素乙個乙個的提出來驗證,思路簡單,但運算量較大,解題效率低,如果列舉範圍資料太大,運算時間會很長。

2:第二種的演算法和窮舉法相差無幾;

3:二分法是一種高效的查詢方法,其適用於已經排好序的陣列. 基本思路. 從陣列最中間的數開始查詢判斷,若不是需要查詢的數字,則比較大小,之後則在從中間分開的兩邊中的一邊從最中間開始查詢判斷,以此類推. 演算法描述. 這裡以公升序陣列為例,降序陣列類似. 記錄陣列最中間數的下標,將其中的數與要查詢的數進行比較. 若相等,停止查詢,若大於要查詢的數,則將陣列下標上限換為較大半區的最小下標;若小於要查詢的數,則將陣列下標的下限換為較小半區的最大下標. 重複第一步,直到陣列下標不能調換,若查詢到則停止查詢,若未找到,則返回不存在的結果.

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

插入排序,氣泡排序,選擇排序,快速排序,歸併排序

插入排序:插入排序演算法是基於某序列已經有序排列的情況下,通過一次插入乙個元素的方式按照原有排序方式增加元素。

氣泡排序:氣泡排序演算法是把較小的元素往前調或者把較大的元素往後調。

選擇排序:選擇排序演算法的基本思路是為每乙個位置選擇當前最小的元素。

快速排序:快速排序的基本思想是:通過一趟排序演算法把所需要排序的序列的元素分割成兩大塊,其中,一部分的元素都要小於或等於另外一部分的序列元素,然後仍根據該種方法對劃分後的這兩塊序列#的元素分別再次實行快速排序演算法,排序實現的整個過程可以是遞迴的來進行呼叫,最終能夠實現將所需排序的無序序列元素變為乙個有序的序列。

歸併排序:歸併排序演算法就是把序列遞迴劃分成為乙個個短序列,以其中只有1個元素的直接序列或者只有2個元素的序列作為短序列的遞迴出口,再將全部有序的短序列按照一定的規則進行排序為長序列。

1 學習進度條

周/日期

這週所花的時間

**行學到的知識點簡介

目前比較迷惑的問題

第一周10h

64回顧了資料型別和表示式,問檔案

對於檔案這一章的內容還不是特別的清楚了解,尤其是怎麼樣將文字檔案應用到**中去

第二週13h

95陣列的使用,陣列的概念

二維陣列的使用

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

3 學習內容

還有很多東西要學,繼續加油!

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