คำถามติดแท็ก data-structures

โครงสร้างข้อมูลเป็นวิธีการจัดระเบียบข้อมูลในแบบที่ช่วยให้คุณสมบัติเฉพาะของข้อมูลนั้นถูกสอบถามและ / หรือปรับปรุงอย่างมีประสิทธิภาพ

4
เมื่อใดที่ควรเลือก RB tree, B-Tree หรือ AVL tree?
ในฐานะโปรแกรมเมอร์ฉันควรพิจารณาใช้ต้นไม้ RB ต้นไม้ B หรือต้นไม้ AVL เมื่อใด ประเด็นสำคัญที่ต้องพิจารณาก่อนตัดสินใจเลือกคืออะไร? ใครช่วยอธิบายด้วยสถานการณ์สำหรับโครงสร้างต้นไม้แต่ละต้นได้ไหมว่าทำไมจึงเลือกโครงสร้างต้นไม้อื่น ๆ โดยอ้างอิงถึงประเด็นสำคัญ

16
อัลกอริทึมตามระบบฐานตัวเลข? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่ามีอัลกอริทึมที่ยอดเยี่ยมมากมายโดยอิงจากบางส่วนหรือทั้งหมดโดยอาศัยการใช้ตัวเลขอย่างชาญฉลาดในฐานความคิดสร้างสรรค์ ตัวอย่างเช่น: ไบโนเมียลฮีปขึ้นอยู่กับเลขฐานสองและฮีปทวินามที่ซับซ้อนมากขึ้นจะขึ้นอยู่กับเลขฐานสองเอียง อัลกอริทึมบางอย่างสำหรับการสร้างการเรียงลำดับตามคำศัพท์ตามพจนานุกรมจะขึ้นอยู่กับระบบจำนวนแฟคตอเรดิค การลองสามารถคิดได้ว่าเป็นต้นไม้ที่มองไปที่สตริงทีละหลักเพื่อให้ได้ฐานที่เหมาะสม ต้นไม้การเข้ารหัส Huffman ได้รับการออกแบบให้แต่ละขอบในต้นไม้เข้ารหัสเป็นศูนย์หรือหนึ่งในการแทนค่าไบนารี การเข้ารหัส Fibonacci ใช้ในการค้นหา Fibonacci และเพื่อสลับลอการิทึมบางประเภท คำถามของฉันคือมีอัลกอริทึมอะไรอีกบ้างที่ใช้ระบบตัวเลขที่ชาญฉลาดเป็นขั้นตอนสำคัญของสัญชาตญาณหรือการพิสูจน์ . ฉันกำลังคิดที่จะพูดคุยเกี่ยวกับเรื่องนี้ดังนั้นยิ่งฉันต้องวาดตัวอย่างมากเท่าไหร่ก็ยิ่งดีเท่านั้น

1
ความซับซ้อนของเวลาของโครงสร้างข้อมูลต่างๆคืออะไร?
ฉันกำลังพยายามแสดงรายการความซับซ้อนของเวลาในการดำเนินการของโครงสร้างข้อมูลทั่วไปเช่น Arrays, Binary Search Tree, Heap, Linked List เป็นต้นและโดยเฉพาะอย่างยิ่งฉันหมายถึง Java เป็นเรื่องธรรมดามาก แต่ฉันเดาว่าพวกเราบางคนไม่มั่นใจ 100% เกี่ยวกับคำตอบที่แน่นอน ความช่วยเหลือใด ๆ โดยเฉพาะการอ้างอิงจะได้รับการชื่นชมอย่างมาก เช่นสำหรับรายการที่เชื่อมโยงแบบเดี่ยว: การเปลี่ยนองค์ประกอบภายในคือ O (1) คุณทำได้อย่างไร? คุณต้องค้นหาองค์ประกอบก่อนที่จะเปลี่ยนแปลง นอกจากนี้สำหรับ Vector การเพิ่มองค์ประกอบภายในจะได้รับเป็น O (n) แต่ทำไมเราไม่สามารถตัดจำหน่ายในเวลาคงที่โดยใช้ดัชนีได้? โปรดแก้ไขฉันหากฉันขาดอะไรไป ฉันกำลังโพสต์สิ่งที่ค้นพบ / การคาดเดาเป็นคำตอบแรก

5
การอ่านโครงสร้างข้อมูล C / C ++ ใน C # จากอาร์เรย์ไบต์
อะไรคือวิธีที่ดีที่สุดในการเติมโครงสร้าง C # จากอาร์เรย์ไบต์ [] ที่ข้อมูลมาจากโครงสร้าง C / C ++ โครงสร้าง C จะมีลักษณะดังนี้ (C ของฉันเป็นสนิมมาก): typedef OldStuff { CHAR Name[8]; UInt32 User; CHAR Location[8]; UInt32 TimeStamp; UInt32 Sequence; CHAR Tracking[16]; CHAR Filler[12]; } และจะเติมเต็มสิ่งนี้: [StructLayout(LayoutKind.Explicit, Size = 56, Pack = 1)] public struct NewStuff { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] [FieldOffset(0)] …

12
จัดเรียงรายการอาร์เรย์ใน Java
ฉันงุนงงที่ไม่สามารถหาคำตอบได้อย่างรวดเร็วสำหรับเรื่องนี้ ฉันกำลังมองหาโครงสร้างข้อมูลใน Java ซึ่งใช้java.util.Listอินเทอร์เฟซเป็นหลัก แต่จะจัดเก็บสมาชิกในลำดับที่เรียงลำดับ ฉันรู้ว่าคุณสามารถใช้แบบปกติArrayListและCollections.sort()ใช้ได้ แต่ฉันมีสถานการณ์ที่ฉันเพิ่มและดึงข้อมูลสมาชิกจากรายการของฉันเป็นครั้งคราวและฉันไม่ต้องการเรียงลำดับทุกครั้งที่ดึงข้อมูลสมาชิกในกรณีที่ เพิ่มอันใหม่แล้ว ใครช่วยชี้ให้ฉันเห็นสิ่งที่มีอยู่ใน JDK หรือแม้แต่ห้องสมุดบุคคลที่สาม แก้ไข : โครงสร้างข้อมูลจะต้องเก็บข้อมูลที่ซ้ำกัน สรุปคำตอบ : ฉันพบว่าทั้งหมดนี้น่าสนใจมากและได้เรียนรู้มากมาย โดยเฉพาะอย่างยิ่ง Aioobe สมควรได้รับการกล่าวถึงสำหรับความอุตสาหะของเขาในการพยายามบรรลุข้อกำหนดของฉันข้างต้น (ส่วนใหญ่เป็นการใช้งาน java.util.List ที่เรียงลำดับซึ่งรองรับรายการที่ซ้ำกัน) ฉันยอมรับว่าคำตอบของเขาถูกต้องที่สุดสำหรับสิ่งที่ฉันถามและความคิดส่วนใหญ่ที่กระตุ้นให้เกิดผลกระทบของสิ่งที่ฉันกำลังมองหาแม้ว่าสิ่งที่ฉันถามจะไม่ใช่สิ่งที่ฉันต้องการก็ตาม ปัญหาเกี่ยวกับสิ่งที่ฉันขออยู่ในอินเทอร์เฟซรายการและแนวคิดของวิธีการเสริมในอินเทอร์เฟซ หากต้องการอ้างอิง javadoc: ผู้ใช้อินเทอร์เฟซนี้สามารถควบคุมได้อย่างแม่นยำว่าจะแทรกองค์ประกอบใดในรายการ การแทรกลงในรายการที่เรียงลำดับไม่สามารถควบคุมจุดแทรกได้อย่างแม่นยำ จากนั้นคุณต้องคิดว่าคุณจะจัดการกับวิธีการบางอย่างอย่างไร ใช้addตัวอย่างเช่น: เพิ่มบูลีนสาธารณะ (Object o) Appends the specified element to the end of this list (optional operation). ตอนนี้คุณถูกทิ้งให้อยู่ในสถานการณ์ที่ไม่สบายใจของ 1) การทำลายสัญญาและใช้การเพิ่มเวอร์ชันที่เรียงลำดับ 2) …

1
ความยากเมื่อสร้างโครงสร้างข้อมูลแบบซ้อน
ในขณะที่พยายามสร้างข้อความ JSON สำหรับ API ฉันพบว่าตัวเองกำลังพยายามทำสิ่งที่ฉันคิดว่าจะง่าย ฉันต้องการสร้างข้อความดังต่อไปนี้: { "list": [ { "foo": 1, "bar": 2 } ] } อย่างไรก็ตามความพยายามครั้งแรกของฉันไม่ทำงาน: say to-json { foo => [ { a => 1, b => 2 } ] }; # {"foo":[{"a":1},{"b":2}]} การพยายามลดความซับซ้อนของสิ่งต่าง ๆ ทำให้ฉันสับสนมากขึ้น: say { foo => [ { a => 1 } ] …

4
ฉันควรประมวลผล JSON ในส่วนหน้าหรือส่วนหลังซึ่งเร็วกว่ากัน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 เดือนที่ผ่านมา ฉันได้รับการตอบสนองจาก API เป็นการตอบสนอง json ฉันกำลังเขียนโปรแกรมในหลามสำหรับแบ็กเอนด์ ทีมส่วนหน้าต้องการข้อมูลจากการตอบกลับแบบ json แบบ raw สำหรับการเติม UI ดังนั้นเราจึงต้องสั่ง json และทำให้ง่ายขึ้นสำหรับพวกเขาในการดึงข้อมูล ตอนนี้ฉันสามารถสั่งซื้อ json ในรูปแบบเฉพาะและผลักดันไปยังทีมส่วนหน้าหรือฉันสามารถส่งคำตอบ json ดิบ * ไปยังทีมส่วนหน้าและให้พวกเขาจัดการสั่งซื้อ json และใช้ UI ของพวกเขาต่อไป โปรดจำไว้ว่าไฟล์ JSON ของฉันมีขนาด15MB ข้อใดเร็วกว่าและหลักการออกแบบที่ดีกว่า ดำเนินการในส่วนแบ็คเอนด์แล้วกดไปที่ส่วนหน้าหรือดำเนินการในส่วนหน้าหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.