พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)
ใช้ความเข้าใจแบบสัญชาตญาณของ Big-O และมุ่งเน้นเส้นทางร้อน แทนการสแกนซ้อนด้วย Set/Map หลีกเลี่ยงงานซ้ำ และรักษาโค้ดให้เล็กชัดเจน
พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น) เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวม
เป้าหมาย: ปรับปรุงได้อย่างรวดเร็วโดยไม่ต้องใช้ทฤษฎีซับซ้อน
- แนวคิดของ Big-O: หลีกเลี่ยงลูปซ้อนกันสองชั้น
- เส้นทางร้อนและเส้นทางเย็น: ปรับปรุงส่วนที่ทำงานบ่อยที่สุด
- Set/Map สำหรับการค้นหาอย่างรวดเร็ว
- ทำงานเพียงครั้งเดียว แล้วนำผลลัพธ์กลับมาใช้ซ้ำ

การสแกนซ้อนกันมีค่าใช้จ่ายสูง
การซ้อนการสแกนจะเพิ่มปริมาณงานทวีคูณ แต่ละ includes จะเดินผ่านอาร์เรย์อีกครั้ง
// Bad pattern: nested scan for membership (can be ~O(n^2))
const haystack = ["a","b","c","d","e"];
const needles = ["b","e","x"];
const foundSlow = [];
for (const n of needles) {
// includes scans the array each time
if (haystack.includes(n)) {
foundSlow.push(n);
}
}
console.log("slow found:", foundSlow);

Set สำหรับตรวจสอบสมาชิก
สร้าง Set เพียงครั้งเดียว แล้วใช้ has เพื่อตรวจสอบสมาชิกอย่างรวดเร็ว วิธีนี้ตัดการสแกนด้านในออก
// Better: build a Set once, then O(1)-ish checks (~O(n) overall)
const fastSet = new Set(haystack);
const foundFast = [];
for (const n of needles) {
if (fastSet.has(n)) {
foundFast.push(n);
}
}
console.log("fast found:", foundFast);

Map สำหรับนับจำนวน
Map เก็บจำนวนไว้เพื่ออ่านในภายหลังด้วยเวลาประมาณ O(1) จึงไม่ต้องสแกนอาร์เรย์ซ้ำเพื่อนับใหม่
// Build a frequency map once instead of scanning many times
const words = ["a","b","a","a","c","b"];
const freq = new Map();
for (const w of words) {
const old = freq.get(w) || 0;
freq.set(w, old + 1);
}
console.log("count a:", freq.get("a"));
console.log("count b:", freq.get("b"));

ทำเพียงครั้งเดียว (แคช)
หากค่าหนึ่งปรากฏซ้ำ ให้ cache ผลลัพธ์ไว้ ควรทำแคชให้มีขนาดเล็กและเข้าใจง่ายสำหรับผู้เริ่มต้น
// Do work once and reuse (tiny cache)
function heavy(x) {
// pretend heavy math
return x * x + 1;
}
const cache = new Map();
function heavyCached(x) {
if (cache.has(x)) return cache.get(x);
const val = heavy(x);
cache.set(x, val);
return val;
}
console.log("first:", heavyCached(5));
console.log("second:", heavyCached(5)); // cached

มุ่งเน้นเส้นทางร้อน
เส้นทางร้อน: ทำงานหลายครั้ง (ควรปรับปรุงส่วนนี้) เส้นทางเย็น: โค้ดที่ทำงานนาน ๆ ครั้ง (ควรเขียนให้เรียบง่าย)
- นำลูปด้านในออกจากโค้ดที่ทำงานบ่อย
- ใช้ Set/Map กับงานตรวจสอบสมาชิกหรือนับจำนวนที่ทำงานบ่อย
- ค่อยวัดผลภายหลัง โดยเริ่มจากความชัดเจนก่อน

แบบทดสอบการปรับปรุงการตรวจสอบสมาชิก
ตรวจสอบอย่างรวดเร็ว: ลดการสแกนซ้อนกัน

สรุปทบทวน
สรุปทบทวน: หลีกเลี่ยงการสแกนซ้อนกัน ใช้ Set/Map สำหรับการค้นหาและนับจำนวน และทำงานเพียงครั้งเดียว มุ่งเน้นที่ เส้นทางร้อน และเขียนโค้ดในเส้นทางเย็นให้เรียบง่าย

คำถามที่พบบ่อย
บทเรียน “พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)”
ใช้ความเข้าใจแบบสัญชาตญาณของ Big-O และมุ่งเน้นเส้นทางร้อน แทนการสแกนซ้อนด้วย Set/Map หลีกเลี่ยงงานซ้ำ และรักษาโค้ดให้เล็กชัดเจน คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม
ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน Big-O เส้นทางร้อนกับเส้นทางเย็น (ประโยชน์สำหรับผู้เริ่มต้น)
- การหลีกเลี่ยงหน่วยความจำรั่ว — คลอเชอร์ ตัวจับเวลา และการอ้างอิง
- เกริ่นนำการทำโปรไฟล์ (Node/DevTools) — นิสัยจับเวลาเล็ก ๆ