公開課學習筆記-[哈佛]電腦科學CS50(四)

來源:互聯網
上載者:User

第9課 歸併排序 -2011.10.27

Bubble sort的效率還是低,衡量效率包括佔用空間,CPU cycles。在排序的情況,用最壞的情況衡量,例如反序。Merge Sort效率明顯高。

詳細介紹Merge Sort(歸併排序),使用recursion(遞迴)方式很容易實現,演算法如下:

sore(){
    if( n < 2)
        return
    else
        sore() 左1半
        sore() 右1半
        merge() 將左右兩半有序的排序合并
}

使用時間為:T(n) = T(n/2)+T(n/2) + n; if n >1;T(n) = 0 ,if (n = 1),總效率為O(NLogN)。

第10課 指標 -2011.10.28

Design,有好的使用者體驗很重要,而不僅是正確工作。

介紹指標。例如int ×a = & b; int temp = * a;(指標a所指的內容,也就是b)。

對於記憶體,從上(低地址)到下(高地址),首先靜態分配,gobal和static資料,在程式一開始就進行靜態分配;之下是在運行中動態分配空間,稱為heap,就是C中通過malloc或者Java中通過new中分配的控制。最後是stack,stack是從下向上分配的,運行中自動分配,用於函數或方法的儲存空間,當調用某個函數時,在stack為其分配某個空間,存放相關的local參數。由於heap是從上至下,stack從下至上,如果沒有空間,就會發生溢出,在C中出現Core段錯誤。總體來講:C語言使用棧(Stack)來儲存函數返回地址/棧禎基址、完成函數的參數傳遞和函數局部變數的儲存。
如果程式需要在啟動並執行過程中動態分配記憶體,可以利用堆(Heap)來實現。

相關連結:我的與編程思想相關的文章

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.