1. อัลกอริทึมเป็นกระบวนการที่สร้างขึ้นจากกฎเกณฑ์
เนื่องจากอัลกอริทึมจัดเป็นรูปแบบหนึ่งของการแก้ปัญหา และกระบวนการก็คือกลุ่มของขั้นตอนที่อยู่รวมกันเพื่อใช้แก้ปัญหาต่างๆ เพื่อให้ได้มาซึ่งผลลัพธ์ ดังนั้นจึงจำเป็นต้องมีกฎเกณฑ์ในการสร้างกระบวนการเหล่านั้น ซึ่งอาจอยู่ในรูปแบบของประโยคภาษาอังกฤษ สัญลักษณ์ หรือซูโดโค้ดที่มีความเป็นสากล
2. กฎเกณฑ์ที่นำมาสร้างเป็นอัลกอริทึม ต้องไม่คลุมเครือ
กฎเกณฑ์ใดๆ ก็ตามที่นำมาสร้างอัลกอริทึม จะต้องมีระบบ ระเบียบ อ่านแล้วไม่สับสน กล่าวคือ จะต้องเป็นกฎเกณฑ์ที่อ่านแล้วเข้าใจตรงกัน และจะต้องหลีกเลี่ยงคำที่ก่อให้เกิดความเข้าใจได้หลายความหมาย
3. การประมวลผลต้องเป็นลำดับขั้นตอน
คำสั่งต่างๆ ในอัลกอริทึม จะต้องประมวลผลเป็นลำดับขั้นตอนชัดเจน
4. กระบวนการต้องให้ได้ผลลัพธ์ตามที่กำหนดในปัญหา
กลุ่มขั้นตอนต่างๆ ที่กำหนดไว้ในกระบวนการ เมื่อถูกดำเนินการแล้ว จะต้องได้ผลลัพธ์ตรงตามที่กำหนดในปัญหานั้นๆ
5. อัลกอริทึมต้องมีจุดสิ้นสุด
คุณสมบัติอีกข้อหนึ่งที่สำคัญก็คืออัลกอริทึมต้องมีจุดสิ้นสุด เนื่องจากคอมพิวเตอร์จะไม่สามารถประมวลผลแบบไม่สิ้นสุดได้ เช่น การบวกเลขจำนวนเต็มบวก ไม่ถือว่าเป็นอัลกอริทึม เนื่องจากไม่ทราบถึงขอบเขตสิ้นสุดของตัวเลขจำนวนเต็ม ดังนั้น คำว่า การบวกเลขจำนวนเต็มบวก จึงเป็นขั้นตอนการทำงานแบบไม่มีที่สิ้นสุด จึงสมควรกำหนดใหม่ เช่น การบวกเลขจำนวนเต็มบวกตั้งแต่ 1-100 เป็นต้น
หลักการเขียนอัลกอริทึม
1. กระบวนการสำคัญเริ่มต้นที่จุดจุดเดียวในการมีจุดเริ่มต้นหลายที่จะทำให้กระบวนการวิธีสับสน จนในที่สุดอาจทำให้ผลลัพธ์ที่ได้ไม่ตรงกับความต้องการ หรืออาจทำให้อัลกอริทึมนั้นไม่สามารถทำงานได้เลย
2. กำหนดการทำงานเป็นขั้นเป็นตอนอย่างชัดเจน การกำหนดอัลกอริทึมที่ดีควรมีขั้นตอนที่ชัดเจนไม่คลุมเครือ เสร็จจากขั้นตอนหนึ่ง ไปยังขั้นตอนที่สองมีเงื่อนไขการทำงานอย่างไร ควรกำหนดให้ชัดเจน
3. การทำงานแต่ละขั้นตอนควรสั้นกระชับ เพราะการกำหนดขั้นตอนการทำงานให้สั้นกระชับนอกจากจะทำให้โปรแกรมทำงานได้รวดเร็วแล้ว ยังเป็นประโยชน์ต่อผู้อื่นที่มาพัฒนาโปรแกรมต่อด้วยเพราะสามารถศึกษาอัลกอริทึมจากโปรแกรมที่เขียนไว้ได้ง่าย
4. ผลลัพธ์ในแต่ละขั้นตอนควรต่อเนื่องกัน การออกแบบขั้นตอนที่ดีนั้นผลลัพธ์จากขั้นตอนแรกควรเป็นข้อมูลสำหรับนำเข้า ให้กับข้อมูลในขั้นต่อไป ต่อเนื่องกันไปจนกระทั่งได้ผลลัพธ์ตามที่ต้องการ
5. การออกแบบอัลกอริทึมที่ดี ควรออกแบบให้ครอบคลุมการทำงานในหลายรูปแบบ เช่น การออกแบบโดยคิดไว้ล่วงหน้าว่าหากผู้ใช้โปรแกรมป้อนข้อมูลเข้าผิดประเภท โปรแกรมจะมีการเตื่อนว่าผู้ใช้งานมีการใส่ข้อมูลที่ผิดประเภทโดยโปรแกรมจะไม่รับข้อมูลนั้น เพื่อให้ใส่ข้อมูลใหม่อีกครั้ง เพื่อป้องกันการเกิดจุดบกพร่องของโปรแกรมได้