柚子快報邀請碼778899分享:c語言 初識數(shù)據(jù)結(jié)構(gòu)和算法
柚子快報邀請碼778899分享:c語言 初識數(shù)據(jù)結(jié)構(gòu)和算法
說在前面:?看到這篇文章的友友你好啊,在學(xué)習(xí)的路途中歡迎你的私信、留言,交流互動啊,我們一起學(xué)習(xí)、一起進步呀!?
目錄
數(shù)據(jù)和結(jié)構(gòu)
解釋含義
數(shù)據(jù)的屬性劃分
數(shù)據(jù)和算法的關(guān)系
算法中復(fù)雜度
時間復(fù)雜度
空間復(fù)雜度
數(shù)據(jù)和結(jié)構(gòu)
解釋含義
?數(shù)據(jù)就是包含著大量的信息,信息的量堆積上來,就會使得信息變得雜亂
?結(jié)構(gòu)就是對數(shù)據(jù)進行處理,使得數(shù)據(jù)更加合理
數(shù)據(jù)的屬性劃分
?按照數(shù)據(jù)的屬性,我們可以先把數(shù)據(jù)按照屬性進行劃分,例如:整型、浮點型、字符串型等等
數(shù)據(jù)和算法的關(guān)系
?對數(shù)據(jù)的高效處理就是算法的涵蓋內(nèi)容,如何使用準(zhǔn)確便捷的方法對龐大的數(shù)據(jù)進行處理就需要學(xué)習(xí)算法的能力了,這里也凸顯了學(xué)習(xí)好數(shù)學(xué)的重要性,利用數(shù)學(xué)思維來處理問題,當(dāng)然死磕代碼誰都逃不掉。
?算法的底層邏輯還是數(shù)學(xué),基礎(chǔ)學(xué)科構(gòu)造了底層的邏輯,計算機只是一個輔助工具
算法中復(fù)雜度
?計算復(fù)雜性理論中的復(fù)雜度,判斷算法的好壞
?復(fù)雜度往往是考察一個算法是否高效的標(biāo)志
復(fù)雜度分為空間復(fù)雜的和時間復(fù)雜度,現(xiàn)今計算機的性能飛躍式的提升,空間復(fù)雜度往往不會作為考慮的因素
時間復(fù)雜度
?時間復(fù)雜度:指完成一個算法所需要的時間,是衡量一個算法優(yōu)劣的重要參數(shù)。時間復(fù)雜度越小,說明算法效率越高。
算法的時間復(fù)雜度是一個函數(shù)式T(N)
常見的時間復(fù)雜度量級有常數(shù)階O(1)、對數(shù)階O(logN)、線性階O(n)、線性對數(shù)階O(nlogN)、平方階O(n^2)、立方階O(n^3)、指數(shù)階O(2^n)和階乘階O(n!)等。
大O符號,用于描述函數(shù)漸進行為的數(shù)學(xué)符號,時間復(fù)雜度空間復(fù)雜度都可使用
時間復(fù)雜度函數(shù)式T(N)中,只保留最?階項,去掉那些低階項,因為當(dāng)N不斷變?時,低階項對結(jié)果影響越來越?,當(dāng)N?窮?時,就可以忽略不計了
只要是常量就忽略不計,高階項和低階項在一起時,常??梢詫⒌碗A項舍去
空間復(fù)雜度
?空間復(fù)雜度:空間復(fù)雜度是指完成一個算法所需要占用的存儲空間,一般是輸入?yún)?shù)的函數(shù)。它也是算法優(yōu)劣的重要度量指標(biāo)??臻g復(fù)雜度越小,算法通常被認(rèn)為越好。
對于不同性能的電腦來說,編譯環(huán)境、運行環(huán)境等都是有差異的,往往性能越高所耗時間越短
一種粗略的計算方式:
程序的時間效率=每條語句的運行時間(不確定的)*運行的次數(shù)(確定的)
說在最后:
如何檢查自己的數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)的程度?
這里可以推薦一個方法:
把復(fù)雜的數(shù)據(jù)結(jié)合給你的朋友用簡單的方法講出來讓他理解
柚子快報邀請碼778899分享:c語言 初識數(shù)據(jù)結(jié)構(gòu)和算法
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。