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

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

3
เป็นวิธีปฏิบัติที่ดีที่จะรวมชุดของคุณสมบัติที่เกี่ยวข้องไว้ในโครงสร้าง / คลาสของตัวเองหรือไม่?
การเขียนวัตถุผู้ใช้ในสวิฟท์ แต่คำถามของฉันเกี่ยวข้องกับภาษาที่พิมพ์ออกมาอย่างรุนแรง ผู้ใช้สามารถมีลิงก์จำนวนมาก (FacebookProfile, InstagramProfile, ฯลฯ ) คำถามสองสามข้อเกี่ยวกับเรื่องนี้ เป็นการดีที่จะรวมลิงก์ในวัตถุของตนเองหรือไม่? struct ผู้ใช้ { var firstName: string var lastName: string อีเมล var: สตริง ลิงก์ var: ลิงค์ } ลิงค์โครงสร้าง { var facebook: string var instagram: string var twitter: string } หรือพวกเขาควรจะหลวม? ฉันรู้ว่าทั้งสองวิธีใช้เทคนิคดี แต่สงสัยว่ามีวิธีแนะนำโดยทั่วไปหรือไม่โดยเฉพาะอย่างยิ่งสำหรับการอ่าน struct User { var firstName: string var lastName: string var …

3
มีรูปแบบการออกแบบสำหรับการจัดการความสัมพันธ์แบบหลายต่อหลายลึกหรือไม่
ฉันมีปัญหาในการกำหนดรูปแบบข้อมูลนี้ฉันได้พบกับการทำงานกับหลายแอปพลิเคชัน มันประกอบด้วย: ชนิดของวัตถุที่ประกอบด้วยวัตถุจำนวนมาก ประเภทวัตถุที่สองที่แต่ละอินสแตนซ์ 'มีหลาย' ของวัตถุแรก และแต่ละวัตถุย่อยของวัตถุแรกจะแก้ไขได้ในแต่ละการเชื่อมโยงกับประเภทวัตถุที่สอง ตัวอย่างง่ายๆอาจเป็น: หลักสูตรการเขียนโปรแกรมประกอบด้วยชุดบทเรียน บทเรียนประกอบด้วยชุดที่ได้รับมอบหมาย สามารถกำหนดหลักสูตรให้กับนักเรียนได้ อย่างไรก็ตามเมื่อกำหนดหลักสูตรให้กับนักเรียนแต่ละบทเรียนและ / หรือการมอบหมายสามารถปรับแต่งให้กับนักเรียนที่มีการลบและเพิ่มเติมไปยังจุดที่หลักสูตรดั้งเดิมอาจไม่สามารถจดจำได้ ในโซลูชันของฉันผลลัพธ์นี้คืออะไร: เมื่อกำหนดหลักสูตรให้กับนักเรียนหลักสูตรจะถูกโหลดลงในหน่วยความจำ จากนั้นสำหรับแต่ละวัตถุย่อยวัตถุนักเรียน / วัตถุความสัมพันธ์ย่อยจะถูกสร้างขึ้นด้วยข้อมูลเมตาที่เหมาะสม โดยพื้นฐานแล้วฉันใช้วัตถุดั้งเดิมเป็นแม่แบบเพื่อสร้างวัตถุที่กำหนดเองได้ที่ต้องการ ส่งผลให้มีข้อมูลจำนวนมากเนื่องจากวัตถุย่อยมีความซับซ้อนและมีจำนวนมากขึ้น ฉันสงสัยว่ามีการเพิ่มประสิทธิภาพหรือรูปแบบบางอย่างเพื่อลดปริมาณของตรรกะ / ความซับซ้อนที่จำเป็นในการจัดการรูปแบบข้อมูลนี้

3
ทำความสะอาดรหัสและวัตถุไฮบริดและความอิจฉาของคุณสมบัติ
ดังนั้นฉันเพิ่งทำ refactorings สำคัญบางอย่างกับรหัสของฉัน หนึ่งในสิ่งสำคัญที่ฉันพยายามทำคือแยกชั้นเรียนออกเป็นวัตถุข้อมูลและวัตถุผู้ปฏิบัติงาน สิ่งนี้ได้รับแรงบันดาลใจเหนือสิ่งอื่นใดตามมาตราของClean Code นี้ : ผสมผสาน ความสับสนนี้บางครั้งนำไปสู่โครงสร้างข้อมูลแบบไฮบริดที่โชคร้ายนั่นคือวัตถุครึ่งหนึ่งและโครงสร้างข้อมูลครึ่งหนึ่ง พวกเขามีฟังก์ชั่นที่ทำสิ่งที่สำคัญและพวกเขายังมีตัวแปรสาธารณะหรือสาธารณะ accessors และ mutators ที่สำหรับทุก intents และวัตถุประสงค์ทำให้ตัวแปรส่วนตัวสาธารณะสาธารณะดึงดูดฟังก์ชั่นภายนอกอื่น ๆ ที่จะใช้ตัวแปรเหล่านั้นวิธีที่โปรแกรมขั้นตอนจะใช้ โครงสร้างข้อมูล. ลูกผสมดังกล่าวทำให้ยากที่จะเพิ่มฟังก์ชั่นใหม่ แต่ก็ทำให้มันยากที่จะเพิ่มโครงสร้างข้อมูลใหม่ พวกเขาเลวร้ายที่สุดของทั้งสองโลก หลีกเลี่ยงการสร้างพวกเขา พวกเขาบ่งบอกถึงการออกแบบที่ยุ่งเหยิงซึ่งผู้เขียนไม่แน่ใจหรือแย่กว่านั้นไม่รู้ว่าพวกเขาต้องการการปกป้องจากฟังก์ชั่นหรือประเภทใด เมื่อเร็ว ๆ นี้ฉันกำลังดูรหัสไปยังหนึ่งในวัตถุงานของฉัน (ที่เกิดขึ้นกับรูปแบบผู้เข้าชม ) และเห็นสิ่งนี้: @Override public void visit(MarketTrade trade) { this.data.handleTrade(trade); updateRun(trade); } private void updateRun(MarketTrade newTrade) { if(this.data.getLastAggressor() != newTrade.getAggressor()) { this.data.setRunLength(0); …

5
Quadtree พร้อมรายการที่ซ้ำกัน
ฉันกำลังใช้ควอดทรี สำหรับผู้ที่ไม่ทราบโครงสร้างข้อมูลนี้ฉันรวมถึงคำอธิบายเล็ก ๆ ต่อไปนี้: ควอดทรีที่มีโครงสร้างข้อมูลและอยู่ในระนาบแบบยุคลิดสิ่งที่ octree อยู่ในพื้นที่ 3 มิติ การใช้ควอดทรีทั่วไปคือการจัดทำดัชนีเชิงพื้นที่ เพื่อสรุปการทำงานของมัน quadtree คือชุดของรูปสี่เหลี่ยมที่นี่ด้วยความจุสูงสุดและกล่องขอบเขตเริ่มต้น เมื่อพยายามที่จะแทรกองค์ประกอบลงในควอดทรีซึ่งมีความจุมากที่สุดควอดทรีจะถูกแบ่งออกเป็น 4 ควอดทรี (การแสดงทางเรขาคณิตซึ่งจะมีพื้นที่เล็กกว่าต้นไม้สี่เท่าก่อนแทรก); แต่ละองค์ประกอบมีการกระจายใน subtrees ตามตำแหน่งของมันคือ มุมบนซ้ายถูกผูกไว้เมื่อทำงานกับสี่เหลี่ยม ดังนั้นควอดทรีเป็นทั้งใบและมีองค์ประกอบน้อยกว่าความสามารถของมันหรือต้นไม้ที่มี 4 ควอดทรีเป็นเด็ก ๆ ความกังวลของฉันคือถ้าคุณพยายามเพิ่มรายการที่ซ้ำกันอาจเป็นองค์ประกอบเดียวกันหลายครั้งหรือหลายองค์ประกอบที่มีตำแหน่งเดียวกัน quadtrees มีปัญหาพื้นฐานในการจัดการกับขอบ ตัวอย่างเช่นถ้าคุณทำงานกับควอดทรีที่มีความจุ 1 และหน่วยสี่เหลี่ยมผืนผ้าเป็นกล่องขอบเขต: [(0,0),(0,1),(1,1),(1,0)] และคุณลองแทรกสี่เหลี่ยมสองอันบนขอบเขตซ้ายบนซึ่งเป็นจุดกำเนิด: (หรือในทำนองเดียวกันถ้าคุณลองแทรก N + 1 ครั้งในควอดทรีที่มีความจุ N> 1) quadtree->insert(0.0, 0.0, 0.1, 0.1) quadtree->insert(0.0, 0.0, 0.1, 0.1) ส่วนแทรกครั้งแรกจะไม่มีปัญหา: แต่เมื่อแทรกครั้งแรกจะก่อให้เกิดการแบ่ง …

1
โครงสร้างข้อมูลที่เหมาะสมที่สุดสำหรับ API ของเราเอง
ผมอยู่ในขั้นเริ่มต้นของการเขียนโหมด Emacs สำคัญสำหรับเครือข่ายการแลกเปลี่ยนชุด ; หากคุณใช้ Emacs เป็นประจำสิ่งนี้จะเป็นประโยชน์กับคุณในที่สุด เพื่อลดจำนวนการโทรที่เกิดขึ้นกับ Stack Exchange API (ต่อยอดที่ 10,000 ต่อ IP ต่อวัน)และเพื่อเป็นพลเมืองที่รับผิดชอบโดยทั่วไปฉันต้องการแคชข้อมูลที่ฉันได้รับจากเครือข่ายและเก็บไว้ในหน่วยความจำรอ สามารถเข้าถึงได้อีกครั้ง ฉันติดอยู่กับโครงสร้างข้อมูลเพื่อเก็บข้อมูลนี้ เห็นได้ชัดว่ามันจะเป็นรายการ อย่างไรก็ตามเช่นเดียวกับโครงสร้างข้อมูลใด ๆ ตัวเลือกจะต้องถูกกำหนดโดยข้อมูลที่จัดเก็บและสิ่งที่จะเข้าถึง stack-api/cacheสิ่งที่ผมอยากจะสามารถที่จะเก็บข้อมูลทั้งหมดนี้ในสัญลักษณ์เดียวเช่น ดังนั้นโดยไม่มีความกังวลใจต่อไปstack-api/cacheนี้เป็นรายการของข้อตกลงที่ได้รับการปรับปรุงล่าสุด: `(<csite> <csite> <csite>) <csite>จะอยู่ที่ไหน (1362501715 . <site>) ณ จุดนี้ทั้งหมดที่เราได้ทำมีกำหนดที่เรียบง่ายรายชื่อสมาคม แน่นอนว่าเราจะต้องไปลึก แต่ละ<site>รายการของพารามิเตอร์ API (เฉพาะ) ตามด้วยคำถามรายการ: `("codereview" <cquestion> <cquestion> <cquestion>) แต่ละข้อ<cquestion>คุณเดาเอาว่าเป็นคำถามที่มีเวลาอัปเดตล่าสุด: `(1362501715 <question>) (1362501720 . <question>) <question>เป็นข้อเสียของquestionโครงสร้างและรายชื่อของคำตอบ (อีกครั้ง …

4
ความแตกต่างระหว่างอัลกอริธึมที่ใช้โครงสร้างข้อมูลและอัลกอริธึมที่ใช้ฐานข้อมูลคืออะไร
คำถามทั่วไป ความแตกต่างระหว่างอัลกอริธึมที่ใช้โครงสร้างข้อมูลและอัลกอริธึมที่ใช้ฐานข้อมูลคืออะไร บริบทบางอย่าง นี่เป็นคำถามที่ดักฟังฉันมาระยะหนึ่งแล้วและฉันไม่สามารถหาคำตอบที่น่าเชื่อถือได้ ขณะนี้ฉันกำลังทำงานเพื่อเสริมสร้างความเข้าใจเกี่ยวกับอัลกอริทึมที่แน่นอนว่าเกี่ยวข้องกับโครงสร้างข้อมูลอย่างหนัก สิ่งเหล่านี้เป็นโครงสร้างพื้นฐานเช่นกระเป๋าคิวคิวกองซ้อนลำดับความสำคัญคิวและกอง ฉันยังใช้ฐานข้อมูลทุกวันเพื่อจัดเก็บข้อมูลที่ได้รับการประมวลผลและส่งโดยผู้ใช้ปลายทางหรือประมวลผลโดยโปรแกรม ฉันดึงและส่งข้อมูลผ่าน DAL ซึ่งมีโครงสร้างข้อมูลของตัวเองที่สร้างขึ้นตามตารางในฐานข้อมูล คำถามของฉันมาเมื่อฉันมีตัวเลือกในการจัดเรียงข้อมูลโดยใช้ฐานข้อมูลเพื่อส่งกลับมาให้ฉันสั่งในแบบขึ้น / ลงหรือดึงและโหลดข้อมูลลงในตรรกะของฉันประมวลผลข้อมูลนี้ในคิวลำดับความสำคัญและเรียงลำดับฮีป ทั้งหมดของมัน. หรืออีกอันหนึ่งก็เพื่อค้นหาระเบียนโดยใช้ฐานข้อมูลแทนที่จะโหลดชุดย่อยของระเบียนและใช้บางอย่างเช่นการค้นหาแบบไบนารีเพื่อค้นหาระเบียนหรือระเบียนที่ฉันสนใจ ในใจของฉันฉันจะพยายามให้มีการดำเนินการหลายอย่างในฐานข้อมูลปลายก่อนที่จะส่งเพราะการสื่อสารมีราคาแพง สิ่งนี้ทำให้ฉันประหลาดใจเมื่อคุณใช้อัลกอริธึมและโครงสร้างข้อมูลที่กำหนดไว้อย่างเคร่งครัดภายในตรรกะของคุณเองแทนที่จะประมวลผลข้อมูลมากกว่าของฐานข้อมูล ดังนั้นนี่คือคำถาม ... คำถาม โครงสร้างข้อมูลและฐานข้อมูลแตกต่างกันอย่างไร เมื่อไหร่ที่เราจะใช้อัลกอริทึมที่ใช้โครงสร้างข้อมูลที่กำหนดไว้เฉพาะภายในตรรกะของคุณเองและไม่ใช่ของฐานข้อมูล @ ฮาร์วีย์โพสต์:เมื่อใดที่วิธีการในฐานข้อมูลมีประสิทธิภาพน้อยกว่าการใช้วิธีการในตรรกะของคุณเอง? @mirculixx โพสต์:วิธีใดที่ทำให้มีประสิทธิภาพ @ ฮาร์วีย์โพสต์:การประมวลผลข้อมูลด้วยโครงสร้างข้อมูลเร็วกว่าทำในฐานข้อมูลอย่างไร ชี้แจง @Grant โพสต์:ฐานข้อมูลที่ฉันทำงานตามปกตินั้นสัมพันธ์กันและคำถามเหล่านี้ไม่ได้ทำงานกับพวกเขา อย่างไรก็ตามฉันคิดว่าคำถามเหล่านี้ใช้กับกรอบการคงอยู่ใด ๆ (เมื่อฉันพูดกรอบฉันหมายถึงในความหมายทั่วไปมากที่สุด) ฉันรู้ว่าคำตอบที่ไม่มีบริบทเฉพาะนั้นยาก จุดคิดคำแนะนำหรืออภิปรายเรื่องอาหารเป็นสิ่งที่ฉันกำลังมองหาและจะได้รับการชื่นชมมากที่สุด!

6
สิ่งใดที่คุณเรียกคลาสที่ไม่มีเมธอด
สิ่งใดที่คุณเรียกคลาสที่ไม่มีเมธอด ตัวอย่างเช่น, class A { public string something; public int a; } ด้านบนเป็นคลาสที่ไม่มีวิธีการใด ๆ คลาสประเภทนี้มีชื่อพิเศษหรือไม่?

4
หาบ้านในรัศมี
ในระหว่างการสัมภาษณ์ฉันถูกขอให้ระบุสิ่งต่อไปนี้: แอปพลิเคชันอสังหาริมทรัพย์ที่แสดงรายการบ้านทั้งหมดที่อยู่ในตลาดปัจจุบัน (เช่นเพื่อขาย) ภายในระยะทางที่กำหนด (พูดตัวอย่างเช่นผู้ใช้ต้องการค้นหาบ้านทั้งหมดภายใน 20 ไมล์) คุณจะออกแบบแอปพลิเคชันของคุณอย่างไร (ทั้งโครงสร้างข้อมูลและอะโลกิริทึม) เพื่อสร้างบริการประเภทนี้ ความคิดใด ๆ คุณจะใช้มันอย่างไร? ฉันบอกเขาว่าฉันไม่รู้เพราะฉันไม่เคยทำเรื่องทางภูมิศาสตร์มาก่อน

8
อะไรคือความแตกต่างระหว่าง Array และ Stack?
ตามวิกิพีเดียสแต็ค : เป็นชนิดข้อมูลนามธรรมเข้ามาก่อนออกก่อน (LIFO) และโครงสร้างข้อมูลเชิงเส้น ในขณะที่อาร์เรย์ : เป็นโครงสร้างข้อมูลที่ประกอบด้วยชุดขององค์ประกอบ (ค่าหรือตัวแปร) แต่ละรายการที่ระบุโดยดัชนีหรือคีย์อาร์เรย์อย่างน้อยหนึ่งรายการ เท่าที่ฉันเข้าใจพวกเขาค่อนข้างคล้ายกัน ดังนั้นอะไรคือความแตกต่างที่สำคัญ? หากไม่เหมือนกันอาร์เรย์จะทำอะไรได้บ้างที่สแต็กไม่สามารถและกลับกันได้

8
รายการลำดับความสำคัญของงานที่เก็บไว้ในฐานข้อมูล
ฉันพยายามคิดถึงวิธีที่ดีที่สุดในการทำสิ่งต่อไปนี้: ฉันมีรายการงานที่จัดเก็บในฐานข้อมูล งานมีลำดับความสำคัญที่กำหนดไว้ คุณสามารถเปลี่ยนลำดับความสำคัญของงานเพื่อจัดลำดับใหม่ที่ควรดำเนินการ ฉันกำลังคิดถึงบางสิ่งที่คล้ายกับ Pivotal Tracker ดังนั้นลองจินตนาการว่าเรามีสิ่งต่อไปนี้: 1 Task A 2 Task B 3 Task C 4 Task D 5 Task E เราตัดสินใจว่า E เป็นภารกิจที่สำคัญที่สุดแล้ว 1 Task E 2 Task A 3 Task B 4 Task C 5 Task D ฉันต้องการอัปเดตงานทั้งหมด 5 รายการเพื่อให้ลำดับความสำคัญใหม่แก่พวกเขา ถ้า Task B มีความสำคัญมากกว่า AI ก็จะมี …

2
โครงสร้างข้อมูลสำหรับเกมกระดานสองมิติในภาษาที่ใช้งานได้
ฉันกำลังสร้างการใช้งานMiniMaxอย่างง่ายในภาษาโปรแกรม Elixir เนื่องจากมีเกมความรู้ที่สมบูรณ์แบบมากมาย (tic toe, connect-four, หมากรุก, หมากรุกเป็นต้น) การใช้งานนี้อาจเป็นกรอบในการสร้างเกม AIs สำหรับเกมเหล่านี้ อย่างไรก็ตามปัญหาหนึ่งที่ฉันกำลังเผชิญคือวิธีการจัดเก็บสถานะของเกมอย่างถูกต้องในภาษาที่ใช้งานได้ เกมเหล่านี้ส่วนใหญ่เกี่ยวข้องกับกระดานเกมสองมิติซึ่งการดำเนินการดังต่อไปนี้เป็นประจำ: อ่านเนื้อหาของตำแหน่งบอร์ดเฉพาะ อัปเดตเนื้อหาของตำแหน่งกระดานเฉพาะ (เมื่อส่งคืนความเป็นไปได้ในการย้ายครั้งใหม่) พิจารณาเนื้อหาของสถานที่หนึ่งแห่งขึ้นไปที่เชื่อมต่อกับตำแหน่งปัจจุบัน (เช่นตำแหน่งแนวนอนแนวตั้งหรือแนวทแยงถัดไปหรือก่อนหน้า) พิจารณาเนื้อหาของสถานที่เชื่อมต่อหลายแห่งในทิศทางใด พิจารณาเนื้อหาของไฟล์ทั้งหมดจัดอันดับและเส้นทแยงมุม การหมุนหรือการมิเรอร์บอร์ด (เพื่อตรวจสอบความสมมาตรที่ให้ผลลัพธ์แบบเดียวกับที่คำนวณแล้ว) ภาษาที่ใช้งานได้ส่วนใหญ่ใช้รายการที่เชื่อมโยงและ Tuples เป็นแบบเอกสารสำเร็จรูปพื้นฐานของโครงสร้างข้อมูลหลายองค์ประกอบ อย่างไรก็ตามสิ่งเหล่านี้ดูเหมือนจะทำให้งานแย่มาก: รายการที่เชื่อมโยงมีเวลาค้นหา O (n) (เชิงเส้น) นอกจากนี้เนื่องจากเราไม่สามารถ 'สแกนและอัปเดตบอร์ด' ในการกวาดบนกระดานเพียงครั้งเดียวการใช้รายการดูเหมือนจะไม่สามารถทำได้ Tuplesมีเวลาค้นหา O (1) (คงที่) อย่างไรก็ตามการแสดงบอร์ดเป็น tuple ที่มีขนาดคงที่ทำให้ยากในการย้ำผ่านอันดับไฟล์ไฟล์ diagonals หรือสี่เหลี่ยมต่อเนื่องชนิดอื่น ๆ นอกจากนี้ทั้ง Elixir และ Haskell (ซึ่งเป็นภาษาที่ใช้งานได้สองภาษาที่ฉันรู้จัก) ไม่มีไวยากรณ์ในการอ่านองค์ประกอบที่nของ tuple …

1
การสร้างแบบจำลองตารางการทำงานที่ซับซ้อน
ฉันมีปัญหาในโลกแห่งความจริงที่ฉันพยายามเป็นตัวแทนและเป็นอัตโนมัติ ฉันทำให้มันง่ายขึ้นและเป็นนามธรรมลงไปต่อไปนี้: มีที่ทำงาน n แห่ง (P1, P2, ... , Pn) แต่ละแห่ง Pn มีรหัส Kn มีคนงาน m, (W1, W2, ... , Wm) ในการทำงานที่ Pn คนงานจะต้องถือ Kn แต่ละคีย์สามารถเก็บไว้โดยคนงานหรือปล่อยไว้ที่ Exchange, E ผู้ปฏิบัติงานสามารถเดินทางไปที่ Exchange ได้ตลอดเวลาเพื่อรับกุญแจที่ไม่มีการอ้างสิทธิ์หรือส่งกุญแจเพื่อให้ผู้อื่นใช้ ขณะนี้มีตารางงานภายนอกที่ต้องทำให้เสร็จในลำดับที่เข้มงวด ตัวอย่างเช่น: 2016-04-21 W1 ต้องทำงานที่ P6 2016-04-21 W2 ต้องทำงานที่ P3 ต้องแลกเปลี่ยนกุญแจ ** 2016-04-22 W3 ต้องทำงานที่ P3 2016-04-22 W2 ต้องทำงานที่ …

1
ธนาคารใช้อะไรเป็นประเภทข้อมูลเพื่อเงิน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันตระหนักถึงตัวเลือกที่ดีบางอย่าง : จำนวนเต็มขนาดใหญ่ (เช่น int64_t, mpz_t, bignum libใด ๆ) เพื่อเป็นตัวแทนเซ็นต์หรือ 10 -nเซนต์ - พูดจำนวนเต็มแทน 1/100 ของเงิน ($ 1.05 == 10500) นี้เรียกว่าจำนวนเต็มปรับขนาด ไลบรารีระดับสูงสำหรับเลขทศนิยมทศนิยมที่มีความแม่นยำเช่นBigDecimalใน Java, Decimal ใน Python, decimal.js ใน Javascript, boost :: multiprecision ใน C ++ เงื่อนไข BCD ที่อัดแน่น (ทศนิยมด้วยรหัสไบนารี) เป็นวิธีที่ลึกลับกว่าซึ่งดูเหมือนจะเป็นที่นิยมในซอฟต์แวร์เก่า อ่าน เพิ่มเติม เกี่ยวกับเรื่องนี้ …

4
วิธีที่มีประสิทธิภาพที่สุดในการจัดเก็บข้อมูลนี้คืออะไร?
ฉันรับผิดชอบในการเขียนรหัส VB ​​เก่าอีกครั้ง ฉันเข้าใจว่ามันทำงานอย่างไร แต่ฉันรู้สึกว่ามีวิธีที่มีประสิทธิภาพมากกว่าในการทำสิ่งที่พวกเขาทำ ฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร นี่คือตัวอย่างที่วางแผนไว้ว่าในแง่ของความต้องการข้อมูลนั้นคล้ายกับสิ่งที่ฉันต้องทำ ผู้ใช้ต้องเลือกผู้ผลิตยี่ห้อรุ่นและสีของรถใน GUI ฉันมีไฟล์ข้อความขนาดใหญ่ที่มีหน้าตาดังนี้: Ford Truck F150 red Ford Truck F150 blue Ford Truck F150 black Ford Truck F150 silver Ford Truck F250 red Ford Truck F250 green Ford Sedan Taurus red Ford Sedan Taurus green Ford Sedan Taurus white Ford... ... Subaru SUV …

2
ที่เก็บข้อมูลในหน่วยความจำใน Haskell
ฉันต้องการติดตั้งที่เก็บข้อมูลในหน่วยความจำสำหรับบริการบนเว็บใน Haskell ฉันต้องการเรียกใช้ธุรกรรมในSTMmonad เมื่อฉัน google hash table steam Haskellฉันได้รับสิ่งนี้เท่านั้น: Data. BTree. HashTable. STM.ชื่อโมดูลและความซับซ้อนแนะนำให้ใช้สิ่งนี้เป็นทรี ฉันคิดว่าอาร์เรย์ควรมีประสิทธิภาพมากกว่าสำหรับตารางแฮชที่ไม่แน่นอน มีเหตุผลที่จะหลีกเลี่ยงการใช้อาร์เรย์สำหรับSTMhashtable หรือไม่? ฉันจะได้รับอะไรกับตารางแฮชไอน้ำนี้หรือฉันควรใช้เพียงเตะอบไอน้ำไปยังIntMap?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.