1. 程式人生 > >數據結構與算法之--基本概念

數據結構與算法之--基本概念

ant link 數據結構與算法 size 隨著 pan 提高 需要 bin

數據結構和算法各是指什麽?作用是什麽? 具體有哪些數據結構,又有哪些算法?

  數據結構是數據在計算機內存或者外存中的組織方式,算法就是計算機操作數據結構中數據的方式方法,比如查找、排序。

很少有數據結構是為了節省存儲空間的,數據結構和算法的常見目的都集中與提高數據操作的速度上。

常見數據結構有:數組(Arrays),鏈表(Linked List),棧(Stack),隊列(Queue),二叉樹(Binary Tree),哈希表(Hash Table),圖(Graph)等,

常見算法:查找,排序。

算法性能的評價方式:時間復雜度與空間復雜度、大O表示法

  算法的時間復雜度和空間復雜度分別表示,隨著數據量N的增加,算法需要的時間和存儲空間開銷的增長趨勢。

大O表示法是為了量化這種復雜度的增長趨勢,從而方便地區分算法的性能。關於大O表示法,讓我聯想起,

在高等數學中,同階無窮小的含義,具體是這樣的:

  若當自變量x->0(或者無窮)時,函數f(x)和g(x):f(x)/g(x)=Constant。

類似的,在算法復雜度的評價上,若有一數據集,其數據量N->無窮時,兩種算法的時間復雜度AF(N)/AG(N)=Constant,

就說兩種算法在時間開銷的增長趨勢是同階的,記為:AF=O(AG)。

常見的算法復雜度有:

O(1), O(logN), O(N), O(N*logN), O(N^2), O(2^N)等,一個比一個高階。

數據結構與算法之--基本概念