1. 程式人生 > >演算法筆記 (四)演算法的邏輯結構和物理結構

演算法筆記 (四)演算法的邏輯結構和物理結構

邏輯

     邏輯一詞在定義的時候有狹義和廣義之分。
     狹義的邏輯可以理解為思維邏輯,再大一點就是研究思維活動規律的學科,即邏輯學。

     廣義的概念不僅僅指思維方面,還指事物客觀規律、從形式上又分為形式邏輯和辯證邏輯等等,說的更具體一些邏輯是事物的因果規律,有一定的關聯或者類似學說。

     上面這些是邏輯以及邏輯學範圍內的定義,隨著各個學科以及科學知識的發展,有的學科中也逐漸引入了邏輯一詞,並給邏輯在自己學科中重新闡述定義解釋,但是我們要清楚在某個學科中的解釋是帶有這個學科的特點、特色的,我們要注意區分他們之間的細微區別與聯絡,對於理解概念有幫助。

     換句話說它是一個抽象概念,沒有特指一個具體物件的時候的定義,具體意思即它前面需要有一個具體物件作為主語,如A的邏輯、B的邏輯等。

結構

     結構一般含義表示建築物結構,即各個部分或者區域性組成在一起形成了一個整體,大的建築物體等,各個部分的搭建和安排之意。

邏輯結構

     說了邏輯和結構之後,將兩者結合在一起可以給出表象定義,即事物各個組成部分按照有某種邏輯關係的形式組織在一起,而不是無規律、無定性的羅列,有一種因果或者先後或其它關係在裡面,為了更形象的表示邏輯結構,假如只談結構不談邏輯,裡面欠缺了一些關係在裡面,而只是結構化的東西,顯著更死板缺乏組織、靈活性。

     在資料結構領域中邏輯結構的定義
資料的邏輯結構就特別形象的特指了資料這一物件的邏輯結構,即資料內在的一種相互有關聯關係,這種關聯關係可以成為邏輯結構。

資料的邏輯結構

     再提到邏輯結構有時候也指資料的邏輯結構,‘把資料的’省略了這幾個字其實是不該省略的要不容易發生歧義,從主謂賓構成來說缺少了主語,邏輯結構是對什麼什麼的關係的描述,這裡既是對資料之間關係的描述,資料的邏輯結構現在就比較好理解是由資料和邏輯結構組成,我們可以給它下一個定義。

     資料的邏輯結構=(D,R)D 表示資料元素的有限集合,R表示資料元素之間關係的有限集合,結合在一起便是資料以及資料之間關係的集合。有時也簡稱為資料結構,即是相互之間存在一種或多種關係的元素集合。

人們的認知與邏輯

     人們的認知與邏輯也是經常容易弄混的兩個概念,例如對於資料結構中的樹、圖、線性來說,表面上我們看到的是一個像樹形狀的結構,這是我們的認知,覺得它像樹節點,屬於認知範圍;當談到樹上父節點與子節點之間關聯關係時,換句話說我知道了上一個節點我就可以知道下一個節點資料,這種前驅節點與後繼節點之間的關聯稱為樹的邏輯結構,當然樹也可以使用一維陣列來儲存,陣列儲存的結構在記憶體地址上面是連續的實體記憶體地址即物理儲存,樹也可以是物理儲存,因此,可以說樹是完美的展示了元素之間的邏輯結構。我們對比一下邏輯結構與物理結構,如下圖所示:

邏輯結構 物理結構
線性結構 順序儲存結構
集合結構 連結儲存結構
樹形結構
圖形結構

科學成果的認知

     想一下如下這幾個問題:
- 1.1+1 為什麼等於2?
- 2.為什麼會出現四則運算?加法乘法?
- 3.為什麼會有時間的概念?

     舉這些例子只是想表達我們現在所熟悉、認為本身就存在的事物只是我們認識世界、認識自然、認知不斷提升的產物,是從人的角度所闡述而來,人的特性是主觀能動性有思維、有邏輯,如時間並不是一下產生,開始可能是根據太陽日出日落來計算一天,後來為了更精確,有人人提出時間概念的人,認為規定一年365天、一天24小時等覺得這樣分有意義,經過自然規律的檢驗留存到了最後,我們要從發展的角度來認識事物、認識科學,要不容易把知識學成死的,認為就是這樣那樣的束縛。

     這些是我們人為定義,人為認知的結果,隨著時代的發展進步積澱下來的東西,它們也是從無到有,創新出來的東西要符合客觀發展規律,併為人們認識所接受的事實,並且可以更好的服務於社會、產生更大的價值,才會被人們接受。
只有我們的認知不斷提升、在客觀存在的事物基礎上去發明創造才能找到新的方法、新的科學成果出來。

     我們要明白一個道理即每個領域現有符合客觀實際成果、知識的積累都是人為的積累、總結、提煉出來的,想象一下遠古時代像時間、水、午時三刻、朝九晚五等等都沒有這些概念,是隨著人們認知不斷進步,人為規定出來的時間、水等,前提是這些規定要符合自然發展規律也是常常說的客觀規律,我們發現規定了這些詞語對我們日常還是生活生產都是非常有好處的事情,在人們認知中也就積澱了下來,逐步成為了我們認為的知識,知識是活的。

     如果想發明、創新新的規定或知識,對知識或演算法要有一個合理的認知才行,學習演算法並不僅僅是學習現有演算法,演算法以及演算法公式都是靈活多樣、變化的要以動態變化的思想來看待。

空間論認識

     對於空間理論來說在我們的生活中,一維、二維、三維空間好理解,對於思維空間不好理解,至於存不存在我也不理解,看從哪個角度來理解吧。
一維空間可以從一條直線來理解,活動範圍也是一條直線只能向前或者向後,例如A B 排成一排,A在B後面,那麼A只能看到B的後面,看不到前面因為他們的活動在一維空間受到限制。

     假如他們進入了二維空間,增加了一個維度就可以向左或者向右活動,因此A可以看到B的每個面,如果再引入C、D、E、F等,把整個二維空間佔滿了,A的活動範圍又受到了影響,它並不知道二維以外的空間,也看不到感覺不到。

     增加了三維空間以後,A遍可以坐著飛機或者其它超越二維不受二維空間裡面的內容限制,這個三維空間可以根據我們日常生活的空間大小來理解,容易想象出來。
     按這個層次關係他們已經進入了四維空間後,由於我們沒有生活經驗是比較難想象出來的。