คำถามติดแท็ก sorting-network

24
เรียงลำดับที่เร็วที่สุดของอาร์เรย์ความยาวคงที่ 6 int
ตอบคำถาม Stack Overflow (อันนี้ ) ฉันพบปัญหาย่อยที่น่าสนใจ วิธีที่เร็วที่สุดในการจัดเรียงอาร์เรย์ของ 6 จำนวนเต็มคืออะไร? เนื่องจากคำถามอยู่ในระดับต่ำมาก: เราไม่สามารถสมมติว่ามีไลบรารี (และการโทรเองมีค่าใช้จ่าย) เพียงธรรมดา C เพื่อหลีกเลี่ยงการล้างท่อส่งคำสั่ง (ที่มีค่าใช้จ่ายสูงมาก ) เราควรจะลดกิ่งกระโดดและการควบคุมการไหลอื่น ๆ ทุกชนิด (เช่นที่ซ่อนอยู่หลังจุดลำดับใน&&หรือ||) ห้องมีข้อ จำกัด และการลดการลงทะเบียนและการใช้หน่วยความจำก็เป็นปัญหา คำถามนี้เป็นคำถามประเภทกอล์ฟที่เป้าหมายไม่ได้ลดความยาวของแหล่งที่มา แต่ลดระยะเวลาดำเนินการลง ผมเรียกรหัสมัน Zening 'ที่ใช้ในชื่อของหนังสือเล่มนี้เซนของการเพิ่มประสิทธิภาพรหัสโดยไมเคิล Abrashและต่อมา ทำไมมันถึงน่าสนใจมีหลายเลเยอร์: ตัวอย่างนั้นง่ายและเข้าใจง่ายและวัดผลไม่เกี่ยวข้องกับทักษะ C มากนัก มันแสดงผลของการเลือกอัลกอริทึมที่ดีสำหรับปัญหา แต่ยังมีผลกระทบของคอมไพเลอร์และฮาร์ดแวร์พื้นฐาน นี่คือการดำเนินการอ้างอิงของฉัน (ไร้เดียงสาไม่เหมาะ) และชุดทดสอบของฉัน #include <stdio.h> static __inline__ int sort6(int * d){ char j, i, …

10
วิธีที่เร็วที่สุดในการจัดเรียง 10 หมายเลข? (ตัวเลข 32 บิต)
ฉันกำลังแก้ปัญหาและมันเกี่ยวข้องกับการเรียงลำดับหมายเลข 10 (int32) อย่างรวดเร็ว แอปพลิเคชันของฉันต้องเรียงลำดับหมายเลข 10 ล้านครั้งโดยเร็วที่สุด ฉันสุ่มตัวอย่างชุดข้อมูลขององค์ประกอบหลายพันล้านรายการและทุกครั้งที่ฉันต้องเลือกตัวเลข 10 ตัวจากนั้นทำการย่อตัวและจัดเรียง (และทำการสรุปจากรายการองค์ประกอบเรียง 10) ขณะนี้ฉันกำลังใช้การเรียงลำดับการแทรก แต่ฉันคิดว่าฉันสามารถใช้อัลกอริทึมการเรียงลำดับแบบกำหนดเองได้อย่างรวดเร็วสำหรับปัญหาเฉพาะของฉันซึ่งมี 10 หมายเลขซึ่งจะชนะการเรียงลำดับการแทรก ไม่มีใครมีความคิดเกี่ยวกับวิธีการแก้ไขปัญหานี้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.