มีตำรารอที่จะเขียนในบางจุดเป็นด้วยเรื่องของการทำงานโครงสร้างข้อมูลอัลกอริทึมและ Tradeoffs เกือบทุกอัลกอริทึมหรือโครงสร้างข้อมูลที่คุณน่าจะเรียนรู้ในระดับปริญญาตรีมีคุณสมบัติบางอย่างที่ทำให้ดีขึ้นสำหรับการใช้งานบางอย่างกว่าคนอื่น ๆ
ลองเรียงลำดับเป็นตัวอย่างเนื่องจากทุกคนคุ้นเคยกับอัลกอริธึมการจัดเรียงมาตรฐาน
ก่อนอื่นความซับซ้อนไม่ได้เป็นเพียงความกังวลเท่านั้น ในทางปฏิบัติปัจจัยคงที่มีความสำคัญซึ่งเป็นเหตุผลว่าทำไมการเรียงลำดับอย่างรวดเร็วมีแนวโน้มที่จะใช้มากกว่าการเรียงลำดับฮีปแม้ว่าการเรียงลำดับแบบเร็วจะมีความซับซ้อนในกรณีที่แย่ที่สุด
ประการที่สองมีโอกาสเสมอที่คุณพบว่าตัวเองอยู่ในสถานการณ์ที่คุณกำลังเขียนโปรแกรมภายใต้ข้อ จำกัด ที่แปลก ผมเคยมีที่จะทำสกัด quantile จากเจียมเนื้อเจียมตัวขนาด (1000 หรือดังนั้น) เก็บตัวอย่างเร็วที่สุดเท่าที่เป็นไปได้ แต่มันเป็นไมโครคอนโทรลเลอร์ขนาดเล็กที่มีหน่วยความจำสำรองอ่านเขียนน้อยมากเพื่อให้การปกครองออกมากที่สุดอัลกอริทึมการเรียงลำดับ การเรียงลำดับของเชลล์นั้นเป็นการแลกเปลี่ยนที่ดีที่สุดเนื่องจากเป็น sub-quadratic และไม่ต้องการหน่วยความจำเพิ่มเติมO(nlogn)
ในกรณีอื่น ๆ แนวคิดจากอัลกอริทึมหรือโครงสร้างข้อมูลอาจใช้กับปัญหาวัตถุประสงค์พิเศษ การเรียงลำดับฟองดูเหมือนจะช้ากว่าการเรียงลำดับการแทรกบนฮาร์ดแวร์จริงเสมอ แต่บางครั้งความคิดในการดำเนินการผ่านฟองสบู่ก็เป็นสิ่งที่คุณต้องการ
ลองพิจารณาตัวอย่างเช่นการสร้างภาพ 3 มิติหรือวิดีโอเกมบนการ์ดวิดีโอที่ทันสมัยซึ่งคุณต้องการวาดวัตถุตามลำดับจากกล้องใกล้กับกล้องไปจนถึงกล้องที่อยู่ไกลที่สุดด้วยเหตุผลด้านประสิทธิภาพ แต่ หากคุณไม่ได้รับการสั่งซื้อที่แน่นอนฮาร์ดแวร์จะดูแลมัน หากคุณเคลื่อนที่ไปรอบ ๆ สภาพแวดล้อม 3 มิติลำดับสัมพัทธ์ของวัตถุจะไม่เปลี่ยนแปลงมากนักระหว่างเฟรมดังนั้นการดำเนินการผ่านหนึ่งบับเบิลผ่านทุกเฟรมอาจเป็นการแลกเปลี่ยนที่สมเหตุสมผล (เครื่องยนต์ต้นกำเนิดโดย Valve ทำสิ่งนี้เพื่อผลกระทบของอนุภาค)
การคงอยู่พร้อมกัน, ตำแหน่งแคช, ความสามารถในการปรับขนาดได้บนคลัสเตอร์ / คลาวด์และโฮสต์ของสาเหตุอื่น ๆ ที่อาจเป็นไปได้ว่าเหตุใดโครงสร้างข้อมูลหรืออัลกอริทึมหนึ่งอาจจะเหมาะสมกว่าที่อื่นแม้ว่าจะมีความซับซ้อน
ต้องบอกว่านั่นไม่ได้หมายความว่าคุณควรจดจำอัลกอริธึมและโครงสร้างข้อมูลจำนวนมากในกรณีนี้ การต่อสู้ส่วนใหญ่รู้ตัวว่ามีการแลกเปลี่ยนเพื่อเอาเปรียบในตอนแรกและรู้ว่าจะต้องดูว่าคุณคิดว่าอาจมีบางสิ่งที่เหมาะสม