Time Complexity เป็นศัพท์เฉพาะทางในทาง Programming ที่บ่งบอกถึง จำนวนเวลาที่ใช้ในการทำงาน ของ Algorithm ซึ่งการเปรียบเทียบผลลัพท์ที่ออกมาจาก การคำนวน Time Complexity จะเปรียบเทียบโดยใช้ Time Complexity Classes ดังนี้ (เรียงจากโตช้า ไปโตเร็ว)
โตช้า หมายถึง จำนวนเวลาเพิ่มช้า = ทำงานเร็ว
โตเร็ว หมายถึง จำนวนเวลาเพิ่มเร็ว = ทำงานช้า มากขึ้นเรื่อยๆ เมื่อมีจำนวนข้อมูลมาก

Image: freecodecamp.org
โจทย์ตัวอย่างจะเป็นการวิเคราะห์ Time Complexity ของ Algorothm จัดเรียงข้อมูล แบบ Selection Sort
function selection_sort(arr) {
for(i = 0; i < arr.length - 1; i++) {
for(j = i + 1; j < arr.length; j++) {
if(arr[j] < arr[i]) {
temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
}
return arr
}
จากนั้นเราจะเอามาคำนวนแบบ Summation ซึ่งจะมีสูตร Summation Formula ในการช่วยแก้สมการ
∑i=mn C = C(n+1-m)
∑i=mn i = n(n+1)2 - m(m-1)2
T(n) = ∑i=0n - 1 ∑j=i + 1n 1 : เข้าสูตรที่ 1 (sum c)
T(n) = ∑i=0n - 1 n + 1 - i + 1 : เข้าสูตรที่ 2 (sum i)
T(n) = (n - 1)(n - 1 + 1) 2 - 0(0 - 1) 2 + 1 - i + 1
T(n) = n(n - 1)2 - 1 + 1 - i + 1
T(n) = n(n - 1)2 - i + 1
T(n) = n^2 - n2 - i + 1
T(n) = θ (n2)
จากนั้นเราจะเลือก Term ที่ใหญ่ที่สุดของสมการที่เราพึ่งแก้ ซึ่งนั้นก็คือ n2 เวลาเราบ่งบอกจะนำหน้าด้วย θ หมายถึง "โตเท่ากับ" ก็จะเป็น T(n) = θ (n2) หากเราต้องการจะลองใส่ค่า n เข้าไป ซึ่งก็คือ ขนาดของข้อมูล เราจะได้ 52 = 25 ซึ่งก็หมายความว่า หากเราใส่ข้อมูลขนาด 5 ตัว จะมีรอบจริงในการวนรอบทั้งหมด 25 รอบ
จากข้อมูลนี้เราจะเห็นว่า Algorithm ที่มี For Loop ซ้อนกัน 2 อัน Time Complexity ก็มีแนวโน้วที่จะเป็น n2 หากมี For Loop ซ้อนกัน 3 อัน Time Complexity ก็มีแนวโน้วที่จะเป็น n3 เป็นต้น แต่จะเป็นเฉพาะกับ Algorithm ที่แต่ละ Loop จะทำงาน n ครั้งเท่านั้น อาจจะมี Algorithm ที่มี For Loop ซ้อนกัน 2 อัน แต่ไม่ได้มี Time Complexity เป็น n2 ก็ได้ หากจำนวนรอบแต่ละ Loop วนซ้ำไม่ถึง n ครั้ง
