數據結構與算法 - 入門篇

1. 性能方面

瞭解和比較算法的優缺點,使用合併排序算法快速排序算法,使用數組鏈表獲得的結果確定都大不相同算法

2. 二分查找法

例如,登陸你的AsiaInfo 郵箱,亞信必須覈實你是否有其餘網站的帳戶,所以必須在數據庫查找你的用戶名,若是你的用戶名是 yangzy3 ,AsiaInfo 能夠以 y 打頭部分開始查找,可是更符合邏輯的是從中間開始查找數據庫

查找條件

  1. 有序元素列表
  2. 查找的元素含在列表中,二分查找返回其位置;不然返回爲null

時間複雜度

O(lgn),相比簡單查找效率更高數組

3.大 O 表示法

大O表示法能夠告訴咱們算法的快慢,大O表示法比較的是操做數,它指出算法運行時間的增速,而O(n)裏面的n表示的是操做數數據結構

一些大O的運行時間

  • O(logn) ,也叫對數時間,這樣的算法包括二分查找
  • O(n),也叫線性時間,這樣的算法包括簡單查找
  • O(n * logn),快速排序
  • O(n2), 選擇排序
  • O(n!),很是慢的排序方法,旅行商問題

4.總結

  • 二分查找的速度比簡單查找的速度快不少性能

  • O(logn)O(n) 快,查找的元素越多,前者比後者越快學習

  • 算法運行時間並不以s爲單位網站

  • 算法的運行時間是從其增速的角度度量的code

  • 算法運行時間用大O表示法來表示排序

5.學習資料

  • <<大話數據結構>>
  • <<算法圖解>>
相關文章
相關標籤/搜索