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

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

教材學習內容總結

  • 查找是在某個項目組中尋找某一指定目標元素,或者肯定該組中並不存在該目標元素的這樣一個過程。對其進行查找的項目組有時也稱爲查找池(search pool)。
  • 查找分爲線性查找和二分查找。
  • 查找池中的項目越多,爲了尋找該目標而作出的比較操做次數就越多。
  • 在方法聲明中,經過使用static修飾符就能夠把它聲明爲靜態的。
  • 此時,含有返回類型和參數類型的方法,就可使用泛型參數了。泛型聲明必須位於返回類型以前,這樣泛型纔可做爲返回類型的一部分
  • 線性查找:從該列表頭開始依次比較每個值,直至找到該目標元素
  • 二分查找是從排序列表的中間開始查找,若是沒有在那個中間元素找到目標元素,則繼續查找。
  • 二分查找適用於已拍列的列表
  • 線性查找算法具備線性時間複雜度O(n)。
  • 二分查找具備一個對數算法且具備時間複雜度O(log2n)。
  • 排序是這樣一個過程,即基於某一標準,將某一組項目按照某個規定順序排列。
  • 與查找算法相似,基於效率排序算法一般也分爲兩類:順序排序(squential sort),它一般使用一對嵌套循環對n個元素排序,須要大約n2次比較;以及對數排序(logarithmicsort),它對n個元素進行排序一般須要大約nlog2n次比較。與查找算法中同樣,在n較小時,這兩類算法之間幾乎不存在實際差異。
  • 選擇排序(selection sort)算法經過反覆地將某一特定值放到它在列表中的最終已排序位置,從而完成對某一列值的排序。
    php

  • 插入排序算法經過反覆地將某一特定值插入到該列表某個已排序的子集中來完成對列表值的排序。
  • 冒泡排序算法經過重複地比較相鄰元素且在必要時將它們互換,從而完成對某個列表的排序。
  • 快速排序算法經過將列表分區,而後對這兩個分區進行遞歸式排序,從而完成對整個列表的排序。
  • 歸併排序算法經過將列表遞歸式分紅兩半直至每一子列表都含有一個元素,而後將這些子列表歸併到一個排序順序中,從而完成對列表的排序。
  • 基數排序是基於隊列處理的。html

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

  • 問題1:對於書上說起的各個排序算法效率的問題有點不太理解
  • 問題1解決方案:
    參考資料
  • 問題2:書上的基數排序只有文字沒有圖片,不容易理解
  • 問題2解決方案:我在網上找到了一張圖片方便理解
    git

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

  • 問題1:pp9.3如何記錄時間
  • 問題1解決方案:百度以後:
    參考資料

代碼託管

(statistics.sh腳本的運行結果截圖)web

上週考試錯題總結

  • 錯題1及緣由,理解狀況

The elements of an _____________ are kept in whatever order the client chooses.算法

A . Ordered list
B . Unordered list
C . Indexed list
D . None of the above
無序列表中的元素按使用者所選擇的任意方式排序。數據結構

  • 錯題2及緣由,理解狀況

The elements of an unordered list are kept in whatever order the client chooses.學習

A . True
B . False
正確答案: A
你的答案: B.net

無序列表中的元素按使用者所選擇的任意方式排序。設計

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • 書上的內容總結很到位
    • 對於代碼上的問題挖掘不太充分
  • 代碼中值得學習的或問題:
    • 代碼詳細明瞭
    • 代碼量較少調試

      點評過的同窗博客和代碼

  • 本週結對學習狀況
  • 上週博客互評狀況

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 0/0 0/0
第二週 800/800 2/2 18/18
第三週 600/1400 3/5 22/40
第四周 700/1300 3/8 22/62
第五週 400/1700 3/11 22/84

參考資料

相關文章
相關標籤/搜索