20172312 2018-2019-1 《程序設計與數據結構》第五學習總結

20172312 2018-2019-1 《程序設計與數據結構》第五週學習總結

教材學習內容總結

第七章

查找

1.查找是一個在某個項目中尋找某一指定元素或者肯定某一指定目標不存在的過程,對其進行查找的項目組有時也稱爲查找池 高效的查找會使該過程所作的比較操做次數最小化php

2.兩種不一樣的查找web

類型                      特色

線性查找法          
                        從表頭開始依次比較,直到找到目標或肯定目標不存在。
                        不是特別高效,惟一的條件是必須可以依次考察每個
                        元素,時間複雜度O(n


                        在一個已排序的項目組中,從列表的中間開始查找,
                        若是中間元素不是要找的指定元素,則削減一半查
二分查找法               池,從剩餘一半的查找池(可行候選項)中繼續以
                        與以前相同的方式進行查找,屢次循環直至找到目
                        標元素或肯定目標元素不在查找池中。
                        二分查找廣泛要快得多,二分查找具備一個對數算法,
                        時間複雜度O(log2 n)
                        二分查找對於大型查找池很是有效率

排序

1.排序是基於某一標準,將某一個項目按照某個規定順序排列,一般分爲順序排列(比較n^2次)和對數排列(比較nlog2n次),n較小時這兩類算法之間幾乎不存在實際差異算法

2.幾種不一樣的排序數組

類型                      特色

冒泡排序                經過重複比較相鄰元素且在必要時互換,從而完成排序
                        。將最大值「冒泡」到最後,而後再次掃描,重複該過程
                        ,直到全部元素冒泡到正確的位置,一共進行n-1輪


快速排序法              將列表進行分區,而後對分區進行遞歸式排序。先選擇
                        一個列表元素做爲分區元素,而後分割列表,使小於分
                        區元素的元素位於該元素的左邊,剩下的位於右邊,最
                        後再將該方法應用於兩分區 


選擇排序                經過反覆將某一特定值放到它在列表中的最終已排序位
                        置來實現排序。


歸併排序                算法經過將列表遞歸分紅兩半直至每一子列表都含有一
                        個元素,而後將這些子列表歸併到一個排序順序中分爲
                        分解、合併兩步

教材學習中的問題和解決過程

  • 問題1:選擇排序和冒泡排序,插入排序的時間複雜度都爲O(n^2),但插入排序>冒泡排序>選擇排序
  • 問題1解決方案:冒泡排序每次比較相鄰的兩個元素進行調換位置,而選擇排序算法並不在開始調換位置,先從頭至尾掃描一遍,將全部元素掃描完畢後,再把霸氣中最小的元素和首個元素對調,就把最小的放在了最前面,選擇排序每掃描一遍數組,只須要一次真正的交換,而冒泡可能須要不少次

代碼調試中的問題和解決過程

  • 問題1:以下圖,利用已有的LinkedList類出現以下狀況。
  • 問題1解決方案:

碼雲連接

上週錯題總結

1.Interfaces cannot be derived from other interfaces.

A . True
B . False √
接口不能從其餘接口派生
錯誤:接口一樣能夠從接口派生

2.Interfaces allow us to make polymorphic references, in which the method that is invoked is based on the type of the reference variable rather than the particular object being referenced at the time.

A . True
B . False √
接口容許咱們進行多態引用,其中調用的方法基於引用變量的類型,而不是當時引用的特定對象
錯誤:接口一樣容許引用特定對象

結對及互評

本週結對學習狀況

  • 20172315
  • 20172318

結對學習內容

  • pp9.2 pp9.3

學習進度條

  代碼行數(新增/累積) 博客數量(新增/累積) 學習時長(新增/累積)
目標 5000行 30篇 400小時  
第一週 22/22 1/1 12/12  
第二週 203/225 2/3 25/37  
第三週 574/799 1/4 15/52  
第四周 1283/1882 2/6 20/72  
第五週 986/2868 1/7 20/92

參考資料

藍墨雲班課數據結構

相關文章
相關標籤/搜索