• 2020.08.11

Swift中的集合(Set)

作者:Thomas Hanning,原文鏈接,原文日期:2018-09-06 譯者:rsenjoyer;校對:numbbbbb,pmst;定稿:Forelax 集合(Set)是 Swift 集合類型(collection types)之一,集合用來存儲類型相同且沒有確定順序唯一的值。你可以將集合想象 […]

  • 2020.08.11

BundlesandPackages

作者:Mattt,原文鏈接,原文日期:2018-12-17 譯者:WAMaker;校對:numbbbbb,BigNerdCoding;定稿:Forelax 在這個給予的季節,讓我們停下腳步,思考一個現代計算機系統賜予我們的最棒的禮物:抽象。 在數百萬 CPU 晶體管、SSD 扇區和 LCD 像素共同 […]

  • 2020.08.11

iOSWKWebView取消自動選中灰色背景

在IOS中WKWebView有些地方tap點擊會有一個灰色背景圖層出現,會讓用戶感覺是個bug. -webkit-tap-highlight-color這個屬性只用於iOS (iPhone和iPad)。當你點擊一個鏈接或者通過Javascript定義的可點擊元素的時候,它就會出現一個半透明的灰色背景 […]

  • 2020.08.07

數據結構與算法二叉查找樹平衡(DSW)

上一節探討了二叉查找樹的基本操作,二叉查找樹的查找效率在理想狀態下是O(lgn),使用該樹進行查找總是比鏈表快得多。但是,該論點並不總是正確,因為查找效率和二叉樹的形狀息息相關。就像這樣: 圖1-1給出了3顆二叉查找樹,它們存儲著相同的數據,但很明顯,圖1-1(A)的樹是最好的。在最壞的情況下,圖A […]

  • 2020.08.07

數據結構與算法二叉查找樹平衡(AVL)

上節討論的DSW算法可以從全局重新平衡樹:每個節點都可能參與樹的重新平衡,或者從節點中移除數據,或者重新設置指針的值。但是,當插入或刪除元素時,將隻影響樹的一部分,此時樹的重新平衡可以只在局部進行。局部平衡二叉查找樹有一個鼎鼎大名的算法,叫做AVL算法,由AVL算法構建出來的二叉樹稱之為AVL樹。 […]

  • 2020.08.07

數據結構與算法自適應二叉樹

平衡樹主要關心的是使樹不要傾向一方,理想狀況下,葉節點只出現在一兩個層次上。因此,新近到達的元素威脅到樹的平衡,就要立即在局部重新構造樹(AVL方法)或重新創建樹(DSW方法),從而糾正這一問題。然後,這樣的重新構造是否總是必要?二叉查找樹用來快速插入、檢索和刪除元素,重要的是執行這些操作的速度而不 […]

  • 2020.08.07

數據結構與算法堆

堆是一種特殊類型的二叉樹,具有以下兩個性質: 每個節點的值大於等於(或小於等於)其每個子節點的值 堆屬於完全二叉樹 就像這樣: 上圖是大頂堆,如果每個節點小於等於其每個子節點的值,那它就是小頂堆。 有趣的是,堆可以通過數組來實現。例如,數組 data = [50 43 49 15 28 40 30 […]

  • 2020.08.07

數據結構與算法kd二叉樹(基礎)

前面探討的各種二叉樹,使用一個鍵值在樹中導航以執行必要的操作,二叉樹中每個節點都有唯一的一個key值,通過key我們可以組織二叉查找樹、平衡樹、自適應樹、堆等,從某種意義上講,這是一維的二叉樹。假如我們現在要研究二維平面上n個點的性質,怎麼將它們組織成二叉樹呢?如果是3維空間或者k維空間呢?對於一個 […]

  • 2020.08.07

數據結構與算法kd二叉樹(kNN)

承接上文,探討kd二叉查找樹的平衡、刪除改進以及運用。 無論是普通的二叉查找樹還是kd二叉查找樹,頻繁的添加以及刪除操作都可能破壞整棵樹的平衡,怎麼辦呢?對於普通的二叉查找樹,可以通過DSW算法或者AVL算法進行平衡,相關內容可以看這裡,數據結構與算法-二叉查找樹(DSW)和數據結構與算法-二叉查找 […]

  • 2020.08.07

數據結構與算法表達式二叉樹

二叉樹的一種應用是無歧義地表示代數、關係或邏輯表達式。在上個世紀20年代初期,波蘭的邏輯學家發明了一種命題邏輯的特殊表示方法,允許從公式中刪除所有括號,稱之為波蘭表示法。但是,與原來帶括號的公式相比,使用波蘭表示法降低了公式的可讀性,沒有得到廣泛的使用。在計算機出現後,這一表示法就很有用了,特別是用 […]