C語言II部落格作業02

2022-09-14 19:12:10 字數 1875 閱讀 1343

這個作業屬於哪個課程

這個作業要求在**

/homework/11825

這個作業的目標

《掌握選擇排序法和二分查詢法》

學號<20209139>

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

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

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

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

1).氣泡排序:重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

2).選擇排序:是一種簡單直觀的排序演算法,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

3).歸併(合併)排序:是分治法的典型應用將每個問題分解成個個小問題,將每個小問題解決,然後合併。將一組無序數按n/2遞迴分解成只有乙個元素的子項,乙個元素就是已經排好序的了。然後將這些有序的子元素進行合併。

4).插入排序:在待排序的元素中,假設前面n-1(其中n>=2)個數已經是排好順序的,現將第n個數插到前面已經排好的序列中,然後找到合適自己的位置,使得插入第n個數的這個序列也是排好順序的。按照此法對所有元素進行插入,直到整個序列排為有序的過程,稱為插入排序

5).快速排序:從數列中挑出乙個元素,稱為 「基準」重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。

主要在交換的方式上;

氣泡排序:每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。

選擇排序演算法:先並不急於調換位置,先從a[1]開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a[p]和a[1]對調,這時a[1]到a[10]中最小的資料就換到了最前面的位置。

選擇排序每掃瞄一遍陣列,只需要一次真正的交換,而冒泡可能需要很多次。比較的次數一樣的。

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

題目難度係數越來越大,但是題目也越來越有趣

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