Python -Analytics Vidhya中數據結構的前7個算法
介紹
有效的軟件開發取決於對算法和數據結構的強烈了解。 Python以其易用性而聞名,它提供了內置的數據結構,例如列表,詞典和集合。但是,通過將適當的算法應用於這些結構來釋放真正的力量。算法本質上是解決問題的規則或過程集。算法和數據結構的聯合使用將基本腳本轉換為高度優化的應用程序。
本文探討了Python數據結構的七種基本算法。
目錄
- 介紹
- 算法在Python數據結構中的重要性
- Python數據結構的七個關鍵算法
- 二進制搜索
- 合併排序
- 快速排序
- Dijkstra的算法
- 廣度優先搜索(BFS)
- 深度優先搜索(DFS)
- 哈希
- 結論
算法在Python數據結構中的重要性
有效算法至關重要,原因有幾個:
- 增強的性能:精心設計的算法,再加上合適的數據結構,最大程度地減少時間和空間的複雜性,從而更快,更有效的程序。例如,在二進制搜索樹上的二進制搜索大大減少了搜索時間。
- 大型數據集的可伸縮性:有效的算法對於處理大量數據集至關重要,以確保處理仍然迅速且資源效率。沒有優化的算法,大型數據結構的操作在計算上變得昂貴。
- 改進的數據組織:算法有助於組織結構內的數據,從而簡化搜索和操縱。對QuickSort和Mergesort等算法排序在陣列或鏈接列表中排列元素,以便於訪問。
- 優化的內存使用情況:算法通過最大程度地減少內存消耗來有助於有效存儲。哈希功能,例如,在哈希表上分配數據,以減少搜索時間。
- 利用庫功能:許多Python庫(Numpy,Pandas,Tensorflow)依賴於復雜的算法進行數據操作。了解這些算法使開發人員可以有效地使用這些庫。
Python數據結構的七個關鍵算法
讓我們檢查七種至關重要的算法:
1。二進制搜索
二進制搜索是用於在排序列表中查找特定項目的高效算法。它通過反復將搜索間隔分為一半而起作用。如果目標值小於中間元素,則搜索將繼續在下半部分。否則,它會在上半部繼續。這種對數時間複雜性(O(log n))使其比對大數據集的線性搜索要快得多。
算法步驟
-
初始化:將
left
設置為0,right
設置為陣列的長度負1。 -
迭代:
left
小於或等於right
:- 計算中間索引(
mid
)。 - 將中間元素與目標值進行比較。如果相等,請返回
mid
。 - 如果目標小於中間元素,
right
更新到mid - 1
。 - 否則,
left
更新到mid 1
。
- 計算中間索引(
- 找不到目標:如果循環完成未找到目標,請返回-1。
代碼實施(說明性)
Def Binary_search(ARR,目標): #...(原始文本中的實現)
在需要快速查找的情況下,二進制搜索是無價的,例如數據庫索引。
2。合併排序
合併排序是一種劃分和爭議算法,它遞歸將未分類的列表劃分為較小的sublist,直到每個sublist僅包含一個元素。然後,這些訂訂者反複合並以產生新的分類訂書機,直到獲得單個排序列表為止。它的時間複雜性是O(n log n),使大型數據集有效。
算法步驟
- 分割:遞歸將數組分為兩個半部分,直到每個半僅包含一個元素。
- 征服:遞歸對每個子列表進行分類(基本情況:已經對單元素列表進行了排序)。
- 合併:通過比較每個sublist的元素並將較小的元素放入結果列表中,將分類的子列表合併到單個排序列表中。
代碼實施(說明性)
DEF MERGE_SORT(ARR): #...(原始文本中的實現)
合併排序特別適合整理鏈接列表和處理可能完全不適合內存的大型數據集。
3。快速排序
快速排序是另一種分裂和串擾算法,選擇一個“樞軸”元素,並根據它們是小於還是大於樞軸的兩個子陣列,將其他元素分為兩個子陣列。此過程遞歸地應用於子陣列,直到整個數組分類為止。儘管其最差的時間複雜性是O(n²),但其平均案例性能為O(n log n),使其成為高度實用的分類算法。
算法步驟
- 樞軸選擇:選擇一個樞軸元素(存在各種策略)。
- 分區:重新排列陣列,以使元素比樞軸更小,並且元素更大。
- 遞歸:在樞軸之前和之後,遞歸將快速排序應用於子陣列。
代碼實施(說明性)
def quick_sort(arr): #...(原始文本中的實現)
Quick Sort的效率使其成為許多庫和框架中的流行選擇。
4。 Dijkstra的算法
Dijkstra的算法找到了從單個源節點到具有非陰性邊緣權重的圖中所有其他節點的最短路徑。它迭代地選擇距源最小的暫定距離的節點,並更新其鄰居的距離。
算法步驟
- 初始化:為每個節點分配一個暫定距離:源節點的零,以及所有其他節點的無窮大。
-
迭代:雖然有未訪問的節點:
- 選擇最小的暫定距離的未訪問節點。
- 對於每個鄰居,計算通過選定節點的距離。如果此距離短於當前的暫定距離,請更新鄰居的暫定距離。
- 終止:當訪問所有節點或優先隊列為空時,該算法將終止。
代碼實施(說明性)
導入heapq Def Dijkstra(圖,開始): #...(原始文本中的實現)
Dijkstra的算法在GPS系統,網絡路由和各種路障問題中具有應用。
5。廣度優先搜索(BFS)
BFS是一種圖形遍曆算法,可以按級別探索圖級。它從根節點開始,然後訪問其所有鄰居,然後再轉移到下一個鄰居。這對於在未加權圖中找到最短路徑很有用。
算法步驟
- 初始化:從包含根節點的隊列和跟踪訪問的節點的集合開始。
-
迭代:雖然隊列不是空的:
- dequeue a節點。
- 如果未被訪問,請將其標記為訪問,並佔領其未訪問的鄰居。
代碼實施(說明性)
從藏品進口Deque def bfs(圖,啟動): #...(原始文本中的實現)
BFS在社交網絡,點對點網絡和搜索引擎中找到應用程序。
6。深度優先搜索(DFS)
DFS是另一種圖形遍曆算法,它通過在回溯之前沿每個分支進行深度探索圖。它使用堆棧(或遞歸)來跟踪訪問的節點。
算法步驟
- 初始化:從包含根節點的堆棧開始,然後進行跟踪訪問的節點的集合。
-
迭代:雖然堆棧不是空的:
- 彈出一個節點。
- 如果未被訪問,請將其標記為訪問,並將其未訪問的鄰居推到堆棧上。
代碼實施(說明性)
def dfs_iterative(圖,啟動): #...(原始文本中的實現)
DFS用於拓撲排序,循環檢測和解決難題。
7。哈希
哈希是將密鑰映射到哈希表中的索引的一種技術,以有效地檢索數據。哈希功能將鍵轉換為索引,從而可以快速查找,插入和刪除。需要使用碰撞處理機制來解決不同鍵映射到相同索引的情況。
算法步驟
- 哈希函數:選擇哈希函數以將鍵映射到索引。
- 插入:使用哈希功能計算索引,然後將鍵值對插入相應的存儲桶(處理碰撞)中。
- 查找/刪除:使用哈希函數查找索引並檢索/刪除鍵值對。
代碼實施(說明性)
班級可觀: #...(原始文本中的實現)
哈希表是數據庫,緩存和其他需要快速數據訪問的應用程序的基礎。
結論
算法的堅實掌握及其與數據結構的相互作用對於有效的Python編程至關重要。這些算法是優化性能,提高可擴展性和解決複雜問題的重要工具。通過掌握這些技術,開發人員可以構建強大而高性能的應用程序。
以上是Python -Analytics Vidhya中數據結構的前7個算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本文回顧了AI最高的藝術生成器,討論了他們的功能,對創意項目的適用性和價值。它重點介紹了Midjourney是專業人士的最佳價值,並建議使用Dall-E 2進行高質量的可定製藝術。

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

本文比較了諸如Chatgpt,Gemini和Claude之類的頂級AI聊天機器人,重點介紹了其獨特功能,自定義選項以及自然語言處理和可靠性的性能。

文章討論了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的寫作助手,重點介紹了其獨特的內容創建功能。它認為Jasper在SEO優化方面表現出色,而AI工具有助於保持音調的組成

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

本文評論了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高級AI語音生成器,重點介紹其功能,語音質量和滿足不同需求的適用性。
