當前位置:首頁 » 服務存儲 » 演算法的效率與存儲結構有關嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

演算法的效率與存儲結構有關嗎

發布時間: 2022-07-03 06:58:59

① 演算法的執行效率與數據的儲存結構無關

答案C
分析:用演算法的定義逐一來分析判斷各選項的正確與否.
演算法的特點:有窮性,確定性,順序性與正確性,不唯一性,普遍性
演算法可以用自然語言、圖形語言,程序語言來表示,故A、B不對
同一問題可以用不同的演算法來描述,但結果一定相同,故D不對.C對.
故應選C.
點評:考查演算法的定義以及演算法的表示形式,演算法的特徵,考查很詳細.
打字不易,如滿意,望採納.

② 數據結構和演算法有什麼關系數據結構就是演算法嗎

首先你要弄清楚數據結構是什麼?數據結構呢其實就是一種存儲數據之間的邏輯結構:比如我們學過的線性結構:順序表啦,鏈表啦;層次結構:樹啦。合適的數據結構可以帶來更高的運行效率和存儲效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了數據存儲必須以某種特定的數據結才行。一般都是根據合適的數據結構來設計演算法,而不是根據演算法來設計數據結構。


演算法和數據結構往往是互不分開的。離開了演算法,數據結構就顯得毫無意義,而沒有了數據結構演算法就沒有實現的條件。良好的數據結構思想就是一種高效的演算法,但是數據結構不等於演算法。只有當數據結構用於處理某個特定問題類型的時候,數據結構才會體現為演算法。要想細致的了解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的數據結構與演算法知識嗎?可以去了解一下小碼哥李明傑。

③ 演算法的時間復雜度和存儲結構有關嗎

有關,數據結構也是影響時間復雜度的重要因素之一。

④ 影響演算法設計的因素有哪些

影響演算法設計的有以下因素:

針對機器:空間復雜性和時間復雜性。

針對程序員:演算法表達和實現的簡單性。

針對問題:演算法對問題及問題輸入規模的普適性。

影響演算法效率的因素

1、從大的方面來講,所選擇的語言對演算法的效率影響很大。一般來說,使用越高級的語言所需要的時間和空間就越大。另外,不同編譯器產生的代碼質量不同,這對演算法的效率也會有影響。

2、存儲結構

數據的存儲結構,分為順序存儲結構和鏈式存儲結構。順序存儲結構的特點是藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關系;鏈式存儲結構則是藉助指示元素存儲地址的指針表示數據元素之間的邏輯關系。不同的問題求解選用不同的存儲結構。

3、指針操作

在使用指針時,指針的有秩序掃描非常重要。例如在模式匹配中,如果直接進行匹配,當有不完全匹配時,主串的指針需要回溯。

在KMP演算法中,我們先可以求出每個元素的next函數值,從而在發生不完全匹配時,主串的指針不必要回溯,只需要模式串的元素回到當前元素的next函數值所指的元素再進行匹配即可。當主串和模式串有很多不完全匹配時,KMP演算法可以大大提高效率。

4、查找的效率

有很多快速查找的演算法都可以提高查找的效率,如建立索引,折半查找等,都是在記錄和關鍵字之間進行比較,從而尋求關系。這一類查找建立在比較的基礎之上。查找的效率依賴於查找過程中所進行的比較次數。

在哈希表中,使得記錄的存儲位置和關鍵字之間建立一個確定的存儲關系,因而在查找時,只需要根據這個對應的關系f 找到給定值K 的像f(k)。用這個思想建立哈希表。如在基因組匹配時,用哈希表非常方便。

5、數據類型的選擇

數據類型的選擇也會影響演算法效率,在對時間和空間要求非常嚴格時,盡可能的使用佔用空間較小的數據類型。使用動態開辟空間會使得效率降低,所有在能確定或估計出需要的空間大小的情況下盡量使用靜態數字。個人覺得用vector雖然方便,但是效率並不高。

6、存儲方式

用堆操作還是用棧操作,對於不同的問題需要仔細選擇。在串和隊列的有關操作中用堆操作合適,在樹的操作中用棧操作合適,如建立二叉樹中序遍歷的遞歸演算法或非遞歸演算法,用棧操作好。

⑤ 數據結構與演算法,這道難題怎麼做啊,求指教

首先,要能夠讀懂代碼,總結演算法的思想,搞清楚該題演算法是完成什麼功能,然後是填空也好,寫演算法結果也好,就不成問題了。要想提高的快,就得多練啊。同時教材中的相關演算法也要熟,好多是書中的原演算法
1. 在計算機中,演算法是指什麼?
答案:解題方案的准確而完整的描述。
2. 在下列選項中,哪個不是一個演算法一般應該具有的基本特徵?
說明:演算法的四個基本特徵是:可行性、確定性、有窮性和擁有足夠的情報。 答案:無窮性。
3. 演算法一般都可以用哪幾種控制結構組合而成? 答案:順序、選擇、循環。 4. 演算法的時間復雜度是指?
答案:演算法執行過程中所需要的基本運算次數。 5. 演算法的空間復雜度是指?
答案:執行過程中所需要的存儲空間。 6. 演算法分析的目的是?
答案:分析演算法的效率以求改進。 7. 下列敘述正確的是(C)
A.演算法的執行效率與數據的存儲結構無關
B.演算法的空間復雜度是指演算法程序中指令(或語句)的條數 C.演算法的有窮性是指演算法必須能在執行有限個步驟之後終止 D.演算法的時間復雜度是指執行演算法程序所需要的時間 8. 數據結構作為計算機的一門學科,主要研究什麼?
答案:主要研究數據的邏輯結構、對各種數據結構進行的運算,以及數據的存儲結構。 9. 數據結構中與所使用的計算機無關的是數據的(C) A.存儲結構 B.物理結構
C.邏輯結構 D.物理和存儲結構 10. 下列敘述中,錯誤的是(B)
A.數據的存儲結構與數據處理的效率密切相關 B.數據的存儲結構與數據處理的效率無關
C.數據的存儲結構在計算機中所佔的空間不一定是連續的 D.一種數據的邏輯結構可以有多種存儲結構 11. 數據的存儲結構是指什麼?
答案:數據的邏輯結構在計算機中的表示。 12. 數據的邏輯結構是指?
答案:反映數據元素之間邏輯關系的數據結構。
13. 根據數據結構中各數據元素之間前後件關系的復雜程度,一般將數據結構分為? 答案:線性結構和非線性結構。
14. 下列數據結構具有記憶功能的是(C) A.隊列 B.循環隊列 C.棧
D.順序表
15. 下列數據結構中,按先進後出原則組織數據的是(B) A.線性鏈表 B.棧
C.循環鏈表 D.順序表

⑥ 數據的存儲結構與數據的處理效率有關

當然有關了,就好像你往書櫃里放書,不同的放書的方式會影響你找這本書的速度。

⑦ (1) 下面敘述正確的是(C) A. 演算法的執行效率與數據的存儲結構無關 B. 演算法的空間復雜度是指演算法程序中指令

B對了吧,不過似乎不完整。
這應該是數據結構的題目,數據的存儲結構將直接影響到演算法的執行效率的。
比如用數組跟用鏈表的效果就是不一樣的,它們的查找、插入、刪除、排序都是不一樣的。

⑧ 演算法的執行效率和數據內存有關系嗎

嚴格的說演算法的執行效率跟演算法本身的效率和計算機的效率有關。

計算機的效率包括cpu和內存的速度。這是你執行演算法時候實實在在花費的時間長短。

撇開計算機的效率,演算法本身的效率跟演算法本身和數據有關。比如冒泡排序,如果數據本身已經接近要求的順序和是逆序差別極大。

⑨ 演算法的執行效率於數據的存儲結構有關么為什麼

當然有關,好的數據結構能加速演算法的速度。所以說演算法和數據結構是不分家的。但是這和高速緩存沒有關系,那是硬體上的東西。

⑩ 程序執行的效率與與什麼有關

程序執行的效率跟演算法有關,而一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。

1、空間復雜度是指演算法在計算機內執行時所需存儲空間的度量
2、一般情況下,演算法中基本操作重復執行的次數是問題規模n的某個函數,用T(n)表示,若有某個輔助函數f(n),使得當n趨近於無窮大時,T(n)/f(n)的極限值為不等於零的常數,則稱f(n)是T(n)的同數量級函數。記作T(n)=O(f(n)),稱O(f(n)) 為演算法的漸進時間復雜度,簡稱時間復雜度。
在各種不同演算法中,若演算法中語句執行次數為一個常數,則時間復雜度為O(1),另外,在時間頻度不相同時,時間復雜度有可能相同,如T(n)=n2+3n+4與T(n)=4n2+2n+1它們的頻度不同,但時間復雜度相同,都為O(n2)。
按數量級遞增排列,常見的時間復雜度有:

常數階O(1),對數階O(log2n),線性階O(n),線性對數階O(nlog2n),平方階O(n^2),立方階O(n^3),...,
k次方階O(n^k),指數階O(2^n)。隨著問題規模n的不斷增大,上述時間復雜度不斷增大,演算法的執行效率越低。