อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งให้ผลลัพธ์ในเวลา จำกัด
ขั้นตอนที่กำหนดอย่างชัดเจน: นั่นคือสิ่งที่คุณสามารถทำได้หรือคำนวณซึ่งถูกกำหนดไว้อย่างแม่นยำ เพียงแค่อ่านขั้นตอนที่คุณรู้ว่าคุณต้องทำอะไรและทำอย่างไร โดยเฉพาะคุณสามารถเขียนเป็นภาษาการเขียนโปรแกรมที่คุณรู้จักและต้องแน่ใจว่าส่วนของโปรแกรมตรงกับขั้นตอนอย่างแน่นอน
ลำดับ: ขั้นตอนจะดำเนินการตามลำดับที่ระบุไว้ ขั้นตอนอาจถูกดำเนินการมากกว่าหนึ่งครั้งขึ้นอยู่กับข้อมูล (ลูป) หรือไม่ดำเนินการเลยขึ้นอยู่กับข้อมูล (ถ้ามีคำสั่ง) อัลกอริทึมแบบขนานกำหนดลำดับเพียงบางส่วนในขั้นตอนดังนั้นฉันจึงเขียนทับที่นี่มากเกินไป มันจะถูกต้องมากขึ้นในการอธิบายว่ามันเป็นชุดที่เรียงลำดับบางส่วนกว่าลำดับ แต่ฉันต้องการที่จะทำให้คำง่ายขึ้นเล็กน้อย นอกจากนี้ยังเป็นไปได้อย่างง่ายดายในการฝังชุดที่สั่งบางส่วนในการสั่งซื้อเต็ม
ผลลัพธ์: สถานะสิ้นสุดหรือค่า ไม่จำเป็นต้องคาดการณ์ล่วงหน้า แต่มันจะต้องมีจุดจบที่แน่นอนที่จะทำให้เกิดเงื่อนไข นี่หมายความว่าระบบปฏิบัติการไม่ได้เป็นอัลกอริธึมแม้ว่ามันจะใช้งานจำนวนมากก็ตาม
แน่นอน: อัลกอริทึมรับประกันว่าจะหยุดบางครั้งอย่างน้อยก็ในเครื่องที่สามารถทำงานได้นานพอ ไม่รับประกันว่าจะหยุดในเวลาที่คาดการณ์ได้และไม่รับประกันว่าจะหยุดก่อนที่ดวงอาทิตย์จะขยายและเปลี่ยนเป็นสีแดงบนเครื่องที่มีอยู่ นี่ก็หมายความว่าระบบปฏิบัติการไม่ใช่อัลกอริทึมเพราะมันจะทำงานได้ตลอดไป ฉันเคยเห็นคำว่า "ขั้นตอน" ที่ใช้อธิบายบางสิ่งบางอย่างที่จะเป็นอัลกอริทึมถ้าเราแน่ใจว่ามันจะหยุดบางครั้ง (เป็นไปได้ที่จะมีอัลกอริทึมที่จะหยุดในเวลาที่ไม่รู้จักสมมติว่าการคาดคะเนของ Goldbach ได้รับการพิสูจน์ทางคณิตศาสตร์เป็นเท็จในการพิสูจน์ที่ไม่เป็นโครงสร้างดังนั้นจึงมีจำนวนคู่> 2 ที่ไม่ใช่ผลรวมของสองช่วง อัลกอริธึมที่ทดสอบเพียงตัวเลขก็จะยุติลงในที่สุด
อัลกอริทึมเป็นสิ่งที่เป็นนามธรรมโดยเจตนาดังนั้นเราจึงไม่พิจารณาคำถามเช่น "เป็นไปได้หรือไม่ที่ร่างกายจะสามารถทำสิ่งนี้ได้ก่อนที่ความร้อนจากจักรวาลจะตาย" พวกเขาตอบยากเกินไป ถ้าเกี่ยวข้องกับการทำงานของคอมพิวเตอร์มันง่ายที่จะนำไปใช้ในภาษาโปรแกรม