tft每日頭條

 > 科技

 > 算法和數據結構書籍推薦

算法和數據結構書籍推薦

科技 更新时间:2024-08-02 09:10:56

算法和數據結構書籍推薦(算法和數據結構)1

算法和數據結構是計算機科學的基礎。如果沒有正确的算法和數據結構知識,開發人員将不得不經曆艱難的情況,或者可能會保持業餘水平。基本上,如果你應聘更大的公司,他們肯定會有算法和數據結構方面的面試問題。程序員的藝術是通過正确選擇數據結構來實現最有效的算法。

簡而言之,算法是解決問題的一系列規則,數據結構是你收集和組織數據的地方。無論是數據挖掘、機器學習、人工智能、Web 應用程序還是移動應用程序,你都應該熟悉算法和數據結構。

時間複雜度和運行時間

為了了解算法的效率,我們需要熟悉解決特定問題所需的時間。通常,我們使用術語 Big O 表示法來衡量算法的時間複雜度。

所以,讓我們用一些代碼來解釋它:

private void Print(int N){ for(int i=0;i<N;i ){ Console.WriteLine("hello world"); } }

上面的代碼将打印“hello world”N 次。所以,一般來說,你可以說上面程序的運行時間是 O(N),其中 O 是大 O 表示法。

我們再看一段代碼:

int N = 5; int count = 0;for (int i = 0; i < N; i ) { for (int j = 0; j < N; j ){ Console.Write( count); Console.WriteLine(".hello world"); } }

上面的代碼會打印 25 次“hello world”,也就是說上面算法的運行時間是 O(N²)。

以下部分描述了運行時間的時間複雜度。

1. 常數

運行時間:O(1)

執行給定操作需要固定數量的步驟。例如,1、5、10 或其他數字,并且此計數不依賴于輸入數據的大小。Dictionary和hashmap是具有恒定時間複雜度的數據結構的示例。

2. 對數

運行時間:O (log(N))

它采用 log(N) 步驟的順序,其中對數的底通常為 2,用于對 N 個元素執行給定的操作。如果 N=1,000,000,複雜度為 O(log(N)) 的算法将執行大約 20 步。

3.線性

運行時間:O(N), O(N*log(N))

對 N 個元素執行操作所需的步數幾乎與元素數相同。如果 N=1,000,000,複雜度為 O(N) 的算法将執行大約 1,000,000 步。

如果 N=1,000,000,複雜度為 O(N*log(N)) 的算法将執行大約 1,000,000 * 20 步。

4.二次方

運行時間:O(N²)

它需要 N 平方步數。

5.立方

運行時間:O(N³)

它需要 N 立方步數。

6:指數

運行時間:O(2^N), O(N!), O(N^N)

它需要幾個步驟,對輸入數據具有指數可靠性。在 N=20 和 O(2^N) 的時間複雜度下,它需要 1,048,576 步。

時間複雜度和執行時間

本節根據元素的數量描述時間複雜度及其執行時間。

如果複雜度低,即使對于大量元素,程序也會執行得很快;如果複雜度高,則對于少量元素,程序會執行緩慢甚至挂起。下表顯示了時間複雜度及其執行時間。

算法和數據結構書籍推薦(算法和數據結構)2

了解你正在編寫的程序的時間複雜度非常重要。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved