20172311《程序設計與數據結構》第一週學習總結

20172311《程序設計與數據結構》第一週學習總結

教材學習內容總結

第一章 概述 (基於軟件質量問題引導出數據結構)

  • 高質量軟件的幾個特徵:
    php

  • 質量問題:
    必須優先考慮質量特徵,並盡最大努力實現html

  • 數據結構:計算機存儲、組織數據的方式web

  • 程序=數據結構+算法
  • 事實證實沒有一種方案能夠解決全部的問題!算法

    第二章 算法分析(高效利用CPU和內存)

  • 增加函數:表示問題大小(n)與咱們但願最優化的值之間的關係,該函數表示了該算法的時間複雜度或空間複雜度
  • 大O記法:
    數組

  • 全部具備相同階次的算法,從運行效率的角度來講都認爲是等價的
  • 增加函數的比較
    數據結構

  • 若是算法的運行效率低,那麼從長遠來講,使用更快的處理器也無濟於事
  • 時間複雜度分析:肯定某個算法的階次函數

教材部分習題解答過程

EX 2.1 下列增加函數的階次是多少?

a.10n^2+100n+1000
解答:n^2學習

b.10·n^3-7
解答:n^3優化

c.2^n+100· n^3
解答:2^n.net

d.n^2 ·log(n)
解答:n^2 ·log(n)

EX 2.4 請肯定下面代碼段的增加函數和階次

for(int count = 0 ; count < n ; count++)
    for(int count2 = 0 ; count2 < n ; count2 = count2 + 2)
        {
            System.out.println(count,count2);
        }
}

解答:
增加函數爲:F(n)=(n^2)/2

階次爲:n^2

EX 2.5 請肯定下面代碼段的增加函數和階次

for(int count = 0 ; count < n ; count++)
    for(int count2 = 0 ; count2 < n ; count2 = count2 * 2)
        {
            System.out.println(count,count2);
        }
}

解答:
增加函數:F(n)=n·log2(n)

階次爲:n·log2(n)

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

  • 問題1:堆和散列表(用於給數據集排序的經常使用的數據結構)是什麼?
  • 問題1解決方案:(經過查詢相關資料進行了解)

散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它經過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫作散列函數,存放記錄的數組叫作散列表。給定表M,存在函數f(key),對任意給定的關鍵字值key,代入函數後若能獲得包含該關鍵字的記錄在表中的地址,則稱表M爲哈希(Hash)表,函數f(key)爲哈希(Hash) 函數。

堆(heap)是計算機科學中一類特殊的數據結構的統稱。堆一般是一個能夠被看作一棵樹的數組對象。

代碼託管 (正在建設中)

結對及互評

  • 本週結對學習狀況
    課後習題交流討論良好!

感想

新的學期開始了,但願本身能在新的學期裏多多提升!

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 4/4
  • 計劃學習時間:6小時

  • 實際學習時間:4小時

  • 改進狀況:繼續加油吧!

參考資料

相關文章
相關標籤/搜索