การเลือกอัลกอริทึมที่เหมาะสมที่สุดใน JavaScript
บางครั้งปัญหาของโค้ดอาจเกี่ยวข้องกับ การเลือกวิธีการแก้ไขปัญหาที่ไม่เหมาะสมที่สุด
สมมติว่ามีงานอยู่หน้าเรา
คือหาผลรวมของจำนวนเต็มตั้งแต่ 1 ถึง 1000000
มาแก้ไขงานที่กำหนดให้:
let sum = 0;
for (let i = 1; i <= 1000000; i++) {
sum += i;
}
console.log(sum);
อะไรกันที่ไม่ถูกต้อง? ประเด็นคือสำหรับการแก้ไข งานที่กำหนดมานี้ มีวิธีแก้ทางคณิตศาสตร์ อยู่
วิธีแก้ไขนี้แทบไม่ต้องใช้ ทรัพยากรเลย! มาเขียนโปรแกรมกัน:
let n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);
ข้อคิด: ก่อนการแก้ไขงานที่ใช้ทรัพยากรมาก ตรวจสอบให้แน่ใจเสมอว่ามีสูตรทางคณิตศาสตร์สำเร็จรูป หรือแนวทางทางคณิตศาสตร์สำเร็จรูปสำหรับการแก้ไขหรือไม่
จงหาจำนวนตัวเลขที่หารลงตัวโดยไม่มีเศษ
ด้วย 5 จากช่วงตั้งแต่ 1 ถึง
1000
จงหาจำนวนหลักที่จำเป็น
ในการเขียนตัวเลขทั้งหมดตั้งแต่ 1 ถึง 1000000