狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

你見過哪些看似簡單但卻非常精妙的代碼?

admin
2024年7月24日 23:12 本文熱度 718

🎈在編程的世界里,簡潔的代碼往往隱藏著深邃的智慧。一起來看看那些看似簡單,實則精妙絕倫的代碼片段,體會編程語言的優雅與力量。

1、樹狀數組

int lowbit(int x)
{  
    return x&-x;  
}  

樹狀數組里的這個,太精妙了,樹狀數組使區間求和復雜度降低到了log(n),發明這段代碼的人一定是個天才,而這個lowbit恰恰是最精妙的一部分,可以準確的找到我們需要加的部分,巧妙的利用了計算機的位運算。

我一直覺得線段樹,樹分治這幾個算法的設計都很精妙

當初學樹狀數組的,看到這個函數也驚嘆了許久,甚是巧妙

2、紅黑樹

(defun rbt-balance (tree)
  "Balance the rbtree list TREE."
  (pcase tree
    (`(B (R (R ,a ,x ,b) ,y ,c) ,z ,d) `(R (B ,a ,x ,b) ,y (B ,c ,z ,d)))
    (`(B (R ,a ,x (R ,b ,y ,c)) ,z ,d) `(R (B ,a ,x ,b) ,y (B ,c ,z ,d)))
    (`(B ,a ,x (R (R ,b ,y ,c) ,z ,d)) `(R (B ,a ,x ,b) ,y (B ,c ,z ,d)))
    (`(B ,a ,x (R ,b ,y (R ,c ,z ,d))) `(R (B ,a ,x ,b) ,y (B ,c ,z ,d)))
    (_                                 tree)))

(defun rbt-insert- (x s)
  "Auxilary function of rbt-insert."
  (pcase s
    (`nil              `(R nil ,x nil))
    (`(,color ,a ,y ,b) (cond ((< x y)
                               (rbt-balance `(,color ,(rbt-insert- x a) ,y ,b)))
                              ((> x y)
                               (rbt-balance `(,color ,a ,y ,(rbt-insert- x b))))
                              (t
                               s)))
    (_                  (error "Expected tree: %S" s))))

(defun rbt-insert (x s)
  "Insert S to rbtree X."
  (pcase (rbt-insert- x s)
    (`(,_ ,a ,y ,b) `(B ,a ,y ,b))
    (_              (error "Internal error: %S" s))))

elisp寫的紅黑樹,可以說非常經典了。

簡單的是elisp,精妙的是紅黑樹

3、星星打分

function getRating(rating{
    if(rating > 5 || rating < 0throw new Error('數字不在范圍內');
    return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );
}

這種實現方式之所以精妙,是因為它利用了字符串的固定模式和 substring 方法的靈活性來生成不同數量的星星,而不需要使用循環或額外的邏輯來逐個添加或刪除星星。這種方法簡潔且高效,特別是在需要頻繁生成星級評分表示時。

然而,這段代碼也有局限性,它假設評分總是整數,并且只支持0到5的評分范圍。如果需要支持小數評分或更廣泛的評分范圍,這段代碼將需要相應的調整。

4、歐幾里得算法

function gcd(a, b{
    return b ? gcd(b, a % b) : a; 
}

這種遞歸實現的歐幾里得算法非常簡潔且高效。它利用了數學上的一個性質:兩個整數的最大公約數與它們的余數和較小數的最大公約數相同。即 gcd(a, b) = gcd(b, a % b)。

5、快速冪

function fastPower(b, n{
    if (n === 0return 1;
    const result = fastPower(b, Math.floor(n / 2));
    return n % 2 === 0 ? result * result : b * result * result;
}

用于高效地計算 b 的 n 次方??焖賰缢惴ㄌ貏e適用于計算大冪次的情況,因為它將冪次的計算復雜度從 O(n) 降低到 O(log n)。

6、并查集

int find(int x){
  x==parent[x]?:find(parent[x]);
}

并查集(Union-Find)數據結構中的 find 函數的簡潔實現。

遞歸查找:find 函數通過遞歸的方式查找元素 x 的根節點。遞歸會在元素與其父節點不同時,繼續查找父節點的父節點,直到找到一個元素其父節點是它自己的元素,即根節點。

路徑壓縮:代碼中的三元運算符 ?: 實現了路徑壓縮技術。當 x 不是其根節點時(即 x != parent[x]),find 函數會調用自身并傳入 parent[x] 作為參數。在遞歸返回的過程中,每個節點的父節點指針都被更新為最終的根節點,這樣可以減少后續查找操作的深度。


該文章在 2024/7/24 23:12:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved