Kacam.net看開網

演算法

同样是 O(n log n),为什么快排更快

快排和堆排都是 O(n log n),实测差两三倍。差在哪?

複製提示詞,選一家接著聊 —— 它會當面試官逐幕問你,而不是把答案倒給你。

手機上裝了對應 App 的,系統會直接開 App。微信裡點不開外部 App,得先用瀏覽器打開。

複製走的那段末尾帶著判卷用的底牌,別自己先讀 —— 自己推出來過才算學到。

大 O 有意扔掉了常数和低阶项,而在真实机器上,被扔掉的那些经常就是全部的差别 —— 一次 L1 命中约 1ns,一次内存访问约 100ns,两个数量级。

这一份逼你算数:动态数组扩容为什么必须翻倍、建堆到底是 O(n) 还是 O(n log n)、1 秒时限下 n=10⁵ 排除了哪些复杂度。答「更快」一律要追「快多少」。

它是 04、05、10 那几份的地基,建议早做。

★★★★☆ · 約 40 分鐘 · 主考:均摊与最坏与平均、常数因子、缓存局部性、数量级估算

這一份練的是

複雜度 攤還分析 快取與常數

練過沒有

登入之後可以記下「這道題我練過」,下次回來看得到是哪天練的。

練過的人寫的心得

還沒有人寫。練完之後,說說你和模型聊出了什麼 —— 哪一幕被問住了,哪個結論你後來改了。

登入之後可以寫心得。

怎麼用

這一批是學習型的:它會引導你,不會追到你說不出話為止。卡住時它先問你卡在哪一層(沒聽過 / 知道但不明白為什麼 / 明白但寫不對),再決定給什麼;同一個點引導兩次還不通才直接講,講完要你用自己的話複述一遍。

怎麼開始

  1. 挑一份,點開它,把提示詞複製走。
  2. 新開一個空對話貼進去,什麼都別說,等它問第一個問題。
  3. 手推優先於寫程式 —— 它會打斷你。在長度 2 的陣列上把每一步推一遍,比寫十遍樣板管用。

中途隨時能喊的四個口令

  • 跳过 立刻進下一幕
  • 换个说法 這一處換個角度再講一遍
  • 直说吧 講完整答案,然後要我複述
  • 复盘 立刻跳到收尾,輸出復盤卡片

三條坑

  • 末尾的底牌別自己先讀 —— 那一欄「常見的想錯」寫的就是每一問的答案。
  • 別急著寫程式。演算法這一類,寫程式是最容易掩蓋「其實沒想清楚」的動作。
  • 它開始誇你的時候,提醒它看「不許誇我」那條。引導不等於哄。

想不出解法先做「狀態定義」;老是錯邊界做「二分」和「前綴和」;認不出題型做「單調堆疊」和「滑動視窗」。「複雜度」那份是好幾份的地基,早做早受益。