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

คำถามเกี่ยวกับการจัดเก็บอย่างมีประสิทธิภาพและการแสดงข้อมูลภายในแอปพลิเคชันซอฟต์แวร์

4
กำลังวิเคราะห์การใช้หน่วยความจำ: Java vs C ++ เล็กน้อย
การใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน Java เปรียบเทียบ \ contrast กับการใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน C ++ อย่างไร ความแตกต่างเล็กน้อยหรือไม่ ไม่แตกต่าง? ความแตกต่างใหญ่? ฉันคาดเดาว่ามันเหมือนกันเพราะ int เป็น int โดยไม่คำนึงถึงภาษา (?) เหตุผลที่ฉันถามสิ่งนี้เพราะฉันกำลังอ่านเกี่ยวกับความสำคัญของการรู้ว่าข้อกำหนดหน่วยความจำของโปรแกรมเมื่อใดจะทำให้โปรแกรมเมอร์ไม่สามารถแก้ไขปัญหาที่กำหนดได้ สิ่งที่ทำให้ฉันหลงใหลคือจำนวนหน่วยความจำที่จำเป็นสำหรับการสร้างวัตถุ Java ชิ้นเดียว ยกตัวอย่างเช่นวัตถุจำนวนเต็ม แก้ไขให้ฉันถ้าฉันผิด แต่วัตถุจำนวนเต็ม Java ต้องการหน่วยความจำ 24 ไบต์: 4 ไบต์สำหรับตัวแปรอินสแตนซ์ของมัน 16 ไบต์ของค่าใช้จ่าย (อ้างอิงถึงคลาสของวัตถุข้อมูลการรวบรวมขยะ & ข้อมูลการซิงโครไนซ์) การซ้อน 4 ไบต์ เป็นอีกตัวอย่างหนึ่งอาร์เรย์ Java (ซึ่งถูกนำมาใช้เป็นวัตถุ) ต้องการ 48 + ไบต์: ข้อมูลส่วนหัว 24 ไบต์ ค่าใช้จ่ายของวัตถุ …

13
อะไรคือตัวอย่างที่ดีและเรียบง่ายสำหรับคิว? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังสอนCS2 ( Java and data structures) และฉันมีปัญหาในการหาตัวอย่างที่ดีที่จะใช้เมื่อสอนคิว แอปพลิเคชันหลักสองอย่างที่ฉันใช้สำหรับการmultithreadedส่งข้อความ (แต่การเขียนโปรแกรม MT อยู่นอกขอบเขตสำหรับหลักสูตร) ​​และBFS-style algorithms(และฉันจะไม่ครอบคลุมกราฟจนกว่าจะถึงระยะหลัง) ฉันยังต้องการหลีกเลี่ยงตัวอย่างที่วางแผนไว้ สิ่งที่ฉันคิดว่าถ้าฉันจะแก้ปัญหาพวกเขาในแบบเธรดเดียวฉันจะใช้ลิสต์แทนคิว ฉันมักจะใช้คิวเฉพาะเมื่อการประมวลผลและการค้นพบเป็น interleaved (เช่นการค้นหา) หรือในกรณีพิเศษอื่น ๆ เช่นบัฟเฟอร์ที่มีความยาว จำกัด (เช่นการบำรุงรักษารายการNสุดท้าย) ในทางปฏิบัติฉันพยายามสอนนักเรียนถึงวิธีที่ดีในการทำสิ่งต่าง ๆ ในโปรแกรมจริงไม่ใช่แค่ของเล่นเพื่อแสดงคุณลักษณะ คำแนะนำเกี่ยวกับอัลกอริทึมที่ดีเรียบง่ายหรือแอปพลิเคชันของคิวที่ฉันสามารถใช้เป็นตัวอย่าง แต่จำเป็นต้องมีความรู้ขั้นต่ำอื่น ๆ

7
คุณสมบัติที่จำเป็นสำหรับการวางแนววัตถุคืออะไร?
ฉันแค่สงสัยว่าคุณสมบัติหรือภาษาใดที่ห้องสมุดต้องมีเพื่อให้มันถูกกำหนดให้เป็น 'Object Oriented' คือการจัดวางวัตถุบางสิ่งบางอย่างที่สามารถมากขึ้นหรือน้อยกว่าจะประสบความสำเร็จในการใด ๆวัตถุประสงค์ทั่วไปการเขียนโปรแกรมภาษาที่มีคุณสมบัติที่ดี? หรือเป็นสิ่งที่สามารถทำได้ในภาษาที่โฆษณาเฉพาะที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ? ตัวอย่างเช่นดูที่รหัส C ต่อไปนี้: SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE); SDL_FreeSurface( screen ); หรือรหัสที่กล่าวถึงที่นี่ ตอนนี้โค้ดด้านบนไม่ได้ใช้การสืบทอด, ความแปรปรวนแบบรันไทม์ (?), ฟังก์ชั่นเสมือนจริง ฯลฯ แต่ดูเหมือนว่า OOP จะค่อนข้างดีสำหรับฉัน Object-Orientation เป็นเพียงการเขียนโค้ดซึ่งขึ้นอยู่กับโครงสร้างข้อมูลที่สร้างขึ้นได้และสามารถทำลายได้เช่นอ็อบเจกต์คลาสคลาส structs เป็นต้นซึ่งไม่ต้องการรูปแบบหรือคุณสมบัติพิเศษใด ๆ ที่จัดทำโดยภาษาโปรแกรมหรือไลบรารี ?

2
โดเมนของการศึกษานี้คืออะไร?
สมมติว่าฉันมีสถานการณ์ที่ฉันออกแบบเว็บไซต์สำหรับผู้ค้าปลีกรองเท้า พวกเขามีแบรนด์และรองเท้าที่แตกต่างกันและแน่นอนว่าพวกเขาต้องการฟังก์ชั่นการค้นหาที่ดีจริงๆ ดังนั้นจึงมีคุณสมบัติแตกต่างกันที่รองเท้าสามารถมีได้ พวกเขาสามารถมีคุณสมบัติพิเศษเช่นขนาดความกว้างเพศและเด็ก / ผู้ใหญ่ หรือพวกเขาอาจมีคุณสมบัติที่ไม่พิเศษเช่นสี (อาจมีสองสีหรือมากกว่าบนรองเท้า) บางประเภทอาจขัดแย้งกับคนอื่นเช่น 'แต่งตัว' และ 'ไม่เป็นทางการ' (รองเท้าไม่สามารถเป็นได้ทั้งรองเท้าแต่งตัวและรองเท้า (ไม่สนใจรองเท้า "สบาย" สำหรับตัวอย่างนี้)) ในขณะที่พวกเขายังไม่ขัดแย้งกับ อื่น ๆ เช่น 'dress' และ 'boot' (รองเท้าสามารถเป็น boot boot) คุณสมบัติพิเศษนั้นง่ายต่อการสร้างแบบจำลอง แต่จะมีคุณสมบัติที่ขัดแย้งกันอย่างไร นี่จะเป็นปัญหาสำหรับทฤษฎีเซตหรือไม่? โดยทั่วไปแล้ววิทยาการคอมพิวเตอร์แบบนี้จะเรียกว่าอะไร? การสร้างแบบจำลองข้อมูลหรืออะไรที่เฉพาะเจาะจงกว่านี้? ฉันต้องการได้รับหลักการทางปรัชญาที่เป็นนามธรรมมากขึ้นเช่นคุณสมบัติพิเศษและไม่ผูกขาดและดูว่าหลักการเหล่านั้นนำไปใช้ในโค้ดโครงสร้างข้อมูลและสคีมาฐานข้อมูลได้อย่างไร เป็นตัวอย่างที่ดีของสิ่งที่ผมกำลังพูดถึงจะเป็นpreorder ขั้นตอนวิธีการแก้ไข มันเป็นวิธีที่ยอดเยี่ยมในการสร้างระบบการจัดหมวดหมู่แบบลำดับชั้นซ้อนกัน ดังนั้นคุณจึงมีปัญหาองค์กรในชีวิตจริง: หมวดหมู่แล้วคุณมีโครงสร้างข้อมูลที่เป็นแบบจำลองปัญหานั้น ฉันจะเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งประเภทนี้ได้ที่ไหน

1
อะไรที่ทำให้การแยกวิเคราะห์ง่ายกว่าสิ่งอื่น
ฉันเพิ่งอ่านหน้า Wikipedia สำหรับWebAssemblyและมันบอกว่า: " WebAssembly คือ ... ออกแบบให้แยกได้เร็วกว่า JavaScript " ซึ่งทำให้ฉันคิดว่าอะไรจะทำให้ภาษาหรือรูปแบบข้อมูลเร็วขึ้นในการแยกวิเคราะห์กว่าอื่น ๆ และขั้นตอนวิธีการแยกวิเคราะห์คืออะไร ใช้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.