20182305 2019-2020-1 《數據結構與面向對象程序設計》第八週學習總結

20182305 2019-2020-1 《數據結構與面向對象程序設計》第八週學習總結

教材學習內容總結

這一週的學習內容爲教材第十三章,包括查找和排序兩部分。html

  • 查找:包括線性查找,折半查找等。java

    • 線性查找即按順序從前向後一個一個進行查找,可是爲了提升代碼運行效率,能夠在第一個位置設置哨兵,從後向前查找。若是查找到的位置是在哨兵位置,則說明未找到這一目標。
    • 折半查找須要先將查找序列進行順序排列(通常是從小到大),而後將中間位置的元素與目標比較大小,若是中間元素小於目標元素則說明可能在中間元素的左邊,反之在右邊。折半查找充分來利用查找序列有序這一特性來提升效率。
  • 排序:包括選擇排序、冒泡排序、插入排序、快速排序。
    • 排序是按照某種標準將一串數據按要求從新排列。
    • 選擇排序是反覆將具體的值放到它最終應該去的有序位置。
    • 插入排序是將具體的值按要求插入到已有順序的列表的具體位置。
    • 冒泡排序是反覆比較相鄰元素,判斷是否知足要求,若是有須要就將他們交換位置。
    • 快速排序利用了遞歸算法,第一遍將整個序列分爲兩個部分,以中間軸爲分界線,左邊小於中樞,右邊大於中樞。再分別進行排序。

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

  • 問題一:線性查找時設置哨兵在數組第一位有什麼意義。git

    經過設置哨兵,可使查找過程得到一個必定能夠找到的結果,此時只須要判斷找到元素的位置是否是在哨兵位置,就能夠判斷原來序列中到底是否含有這個元素。而這一過程可使循環減小一個判斷語句,循環次數多了之後就能夠顯著提升效率
  • 問題二:排序算法的穩定性究竟有什麼意義。算法

    其實有不少算法如今看着沒什麼不一樣,可是當放在大數據雲計算的條件下它的穩定性很是重要。舉個例子來講,對淘寶網的商品進行排序,按照銷量,價格等條件進行排序,它的數據服務器中的數據很是多,所以,當時用一個穩定性效果很差的排序算法,如堆排序、shell排序,當遇到最壞情形,會使得排序的效果很是差,嚴重影響服務器的性能,影響到用戶的體驗。
  • 問題三:對於經常使用的排序方法,究竟哪一種方法效率更高?shell

    1.冒泡算法效率最低。
    2.插入算法效率最高。
    3.選擇算法是冒泡算法的3.3倍。
    4.插入算法是冒泡算法的4.7倍。
    5.插入算法是選擇算法的1.4陪。

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

  • 問題一:==,equals和compareTo的區別?編程

    ==:通常比較兩個變量的值,返回true和false,比較對象的地址,不比較對象的內容,
    equals:比較兩個對象的內容,通常用於比較字符串。
    compareTo:在API中,java.lang包下面的基本數據類型(Integer,Float,Byte,Short,Character 等)的封裝類都實現了對應的compareTo方法。例如對應Interger實現了數值大小判斷;對應String按照字典排序實現字符串的判斷,返回的是字符串長度差或者是字符間在碼錶上的差距。compareTo返回int值,大於返回大於0的整數,等於返回0,小於返回小於0的整數。

代碼託管

## 結對學習同窗博客(20182327)數組

  • 博客中值得學習的或問題:
    • 分點分章節總結學習內容,全面、真實的寫出了本身這周的學習狀況。
    • 添加了圖片和代碼片斷,很好的記錄了學習過程當中出現的問題,記錄了學習中的點子和想法。有助於記錄本身的學習過程、代碼出錯的狀況,便於後續學習糾錯總結。也能夠更好的總結這一週的學習狀況。
  • 代碼中值得學習的或問題:
    • 善於利用Java語言代碼複用性高的特色,不須要重複敲代碼,善於使用繼承,使用之前瞧過的代碼。
  • 基於評分標準,我給本博客打分:11分。得分狀況以下:正確使用Markdown語法+1.教材學習中的問題和解決過程+2.代碼調試中的問題和解決過程+3.感想,體會不假大空+1.點評認真,能指出博客和代碼中的問題+1.結對學習狀況真實可信+1.課後題有驗證+1,進度條有記錄+1.

點評過的同窗博客和代碼

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 6000行 30篇 400小時
第一週 200/200 2/2 17/17
第2、三週 556/756 3/5 31/48 明白了類與方法的關係,對Java編程的思想的瞭解有了一些進步
第四周 673/1429 2/7 12/60 對兩段代碼之間的關係瞭解了一些
第五週 1308/2737 2/9 25/85
第六週 800/3537 2/11 18/103
第七週 4195/7732 2/13 27/130
第八週 489/8221 1/14 6/136
相關文章
相關標籤/搜索