มีการพูดถึงตารางการค้นหาในความคิดเห็น มีสองวิธี
สร้างตารางที่มีความยาว 256 ไบต์อย่างรวดเร็วโดยทุกค่าถัดไปคือรากที่สองของดัชนีที่เกี่ยวข้อง นี่เป็นสิ่งที่รวดเร็วเนื่องจากคุณใช้อาร์กิวเมนต์เป็นดัชนีเพื่อเข้าถึงค่าที่ถูกต้องโดยตรง ข้อเสียเปรียบก็คือมันต้องการตารางที่ยาวและมีค่าซ้ำซ้อนกันมากมาย
Compact
ตามที่กล่าวไว้จำนวนเต็ม 8 บิตสามารถมีค่า 0 ถึง 255 เท่านั้นและรากที่สองที่สอดคล้องกันคือ 0 ถึง 16 (ปัดเศษ) สร้างตารางรายการ 16 (อิงตามศูนย์) ด้วยรายการ n-th ค่าสูงสุดสำหรับอาร์กิวเมนต์ที่สแควร์รูทคือ n ตารางจะมีลักษณะเช่นนี้:
0
2
6
12
20
etc.
คุณเดินผ่านโต๊ะและหยุดเมื่อคุณพบมูลค่าที่มากกว่าหรือเท่ากับอาร์กิวเมนต์ของคุณ ตัวอย่าง: รากที่สองของ 18
set index to 0
value[0] = 0, is less than 18, go to the next entry
value[1] = 2, is less than 18, go to the next entry
value[2] = 6, is less than 18, go to the next entry
value[3] = 12, is less than 18, go to the next entry
value[4] = 20, is greater than or equal to 18, so sqrt(18) = 4
ในขณะที่ตารางการค้นหาอย่างรวดเร็วมีเวลาดำเนินการคงที่ (เพียงหนึ่งการค้นหา) ที่นี่เวลาดำเนินการจะนานขึ้นสำหรับอาร์กิวเมนต์ค่าที่สูงขึ้น
สำหรับวิธีการทั้งสองวิธีนั้นโดยการเลือกค่าที่แตกต่างกันสำหรับตารางคุณสามารถเลือกระหว่างค่าที่ปัดเศษหรือค่าที่ถูกตัดทอนสำหรับสแควร์รูท