คำถามติดแท็ก algorithms

ในคณิตศาสตร์และวิทยาการคอมพิวเตอร์อัลกอริทึมเป็นวิธีที่มีประสิทธิภาพที่แสดงเป็นรายการ จำกัด ของคำแนะนำที่กำหนดไว้อย่างดีสำหรับการคำนวณฟังก์ชัน อัลกอริทึมที่ใช้สำหรับการคำนวณการประมวลผลข้อมูลและการใช้เหตุผลอัตโนมัติ

1
ฟังก์ชั่นการโต้ตอบ / การเขียนโปรแกรมเชิงสัมพันธ์ - มีความแตกต่างหรือไม่?
ฉันใช้Reactive Cocoa (โดย GitHub) ซึ่งเป็นAPI การเขียนโปรแกรมเชิงโต้ตอบสำหรับใช้กับห้องสมุด Cocoa มาระยะหนึ่งแล้ว แต่เพิ่งอ่าน"Out of the Tar Pit"กระดาษที่นำเสนอแนวคิดเบื้องหลัง และฉันก็สับสนเล็กน้อย บทความนำเสนอ (ตามที่ฉันเข้าใจ) การเขียนโปรแกรมเชิงสัมพันธ์เชิงหน้าที่ซึ่งความสัมพันธ์ระหว่างข้อมูลถูกสร้างขึ้นด้วยเงื่อนไขที่ควรมีการบังคับใช้โดยระบบ FRP เพื่อลดจำนวนตรรกะและสถานะ 'อุบัติเหตุ' ที่จำเป็น คำถามของฉันคือแนวคิดทั้งสองนี้คือ FR (eactive) P และ FR (elational) P โดยพื้นฐานแล้วเป็นสิ่งเดียวกัน (โดยที่ก่อนหน้านี้เพิ่งจะนำไปใช้หลัง) หรือมีความแตกต่างที่สำคัญระหว่างทั้งสองหรือไม่ น่าเสียดายที่ในขณะนี้ความรู้เกี่ยวกับพื้นที่ของฉันไม่ดีพอสำหรับฉันที่จะแยกแยะพวกเขาให้มากพอ หากมีความแตกต่างดูเหมือนว่าจะเป็นสิ่งที่ต้องทำด้วยชื่อแนะนำเพื่อตอบสนองต่อการเปลี่ยนแปลงของข้อมูล แน่นอนว่า Reactive Cocoa (และ Rx ใน C #) มีแนวคิดในการสร้างสัญญาณที่ถูกกระตุ้นจากการเปลี่ยนแปลงข้อมูลและสามารถใช้ในการปรับเปลี่ยนค่าอย่างต่อเนื่องตลอดเวลา นี่คือความแตกต่าง? ถ้าไม่เป็นอะไร (โปรดแก้ตัวการติดแท็กที่ไม่ดีฉันไม่สามารถหาแท็กที่เกี่ยวข้องและยังไม่สามารถสร้างได้ - โปรดอัปเดตแท็กเป็นสิ่งที่เหมาะสมกว่าถ้าคุณสามารถทำได้)

1
Shortest Common Superstring: ค้นหาสตริงที่สั้นที่สุดที่มีแฟรกเมนต์สตริงที่กำหนดทั้งหมด
เมื่อกำหนดแฟรกเมนต์สตริงให้ฉันต้องการค้นหาสตริงเดี่ยวสั้นที่สุดเท่าที่จะเป็นไปได้ ("เอาต์พุตสตริง") ที่มีแฟรกเมนต์ทั้งหมด แฟรกเมนต์สามารถทับซ้อนกันในสตริงเอาต์พุต ตัวอย่าง: สำหรับแฟรกเมนต์สตริง: BCDA AGF ABC สตริงเอาต์พุตต่อไปนี้มีแฟรกเมนต์ทั้งหมดและสร้างขึ้นโดยการต่อท้ายแบบไร้เดียงสา: BCDAAGFABC อย่างไรก็ตามสตริงเอาต์พุตนี้ดีกว่า (สั้นกว่า) เนื่องจากมีการซ้อนทับกัน: ABCDAGF ^ ABC ^ BCDA ^ AGF ฉันกำลังมองหาอัลกอริทึมสำหรับปัญหานี้ ไม่สำคัญอย่างยิ่งที่จะต้องค้นหาสตริงเอาต์พุตที่สั้นที่สุด แต่ยิ่งสั้นยิ่งดี ฉันกำลังมองหาอัลกอริทึมที่ดีกว่าแบบไร้เดียงสาที่ชัดเจนซึ่งจะลองต่อท้ายพีชคณิตของอินพุตทั้งหมดและลบการทับซ้อน (ซึ่งดูเหมือนจะเป็น NP-Complete) ฉันเริ่มทำงานกับวิธีแก้ปัญหาและมันพิสูจน์ได้ว่าน่าสนใจมาก ฉันต้องการที่จะเห็นสิ่งที่คนอื่นอาจเกิดขึ้น ฉันจะเพิ่มความคืบหน้าในการทำงานกับคำถามนี้ในอีกสักครู่

1
ฉันพูดถูกเกี่ยวกับความแตกต่างระหว่างอัลกอริทึม Floyd-Warshall, Dijkstra และ Bellman-Ford หรือไม่?
ฉันกำลังศึกษาทั้งสามและฉันได้ระบุข้อสรุปจากพวกเขาด้านล่าง มีใครบอกฉันได้ไหมว่าฉันเข้าใจถูกต้องเพียงพอหรือไม่ ขอบคุณ. อัลกอริทึมของ Dijkstra จะใช้เมื่อคุณมีแหล่งเดียวและคุณต้องการทราบเส้นทางที่เล็กที่สุดจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง แต่ล้มเหลวในกรณีเช่นนี้ อัลกอริทึมของ Floyd-Warshall ใช้เมื่อทุกโหนดใด ๆ สามารถเป็นต้นทางดังนั้นคุณต้องการให้ระยะทางที่สั้นที่สุดในการเข้าถึงโหนดปลายทางใด ๆ จากโหนดต้นทางใด ๆ สิ่งนี้จะล้มเหลวก็ต่อเมื่อมีรอบการลบเท่านั้น (นี่คือสิ่งที่สำคัญที่สุดฉันหมายถึงนี่คือสิ่งที่ฉันแน่ใจน้อยที่สุดเกี่ยวกับ :) 3.Bellman-Ford ใช้เหมือนของ Dijkstra เมื่อมีเพียงแหล่งเดียว สิ่งนี้สามารถรองรับน้ำหนักเชิงลบและการทำงานของมันเหมือนกับของ Floyd-Warshall ยกเว้นแหล่งเดียวใช่ไหม หากคุณต้องการดูอัลกอริธึมที่เกี่ยวข้องคือ (มารยาท Wikipedia): ยามฟอร์ด: procedure BellmanFord(list vertices, list edges, vertex source) // This implementation takes in a graph, represented as lists of vertices // and …

3
โปรดอธิบายข้อความที่ฟังก์ชั่น + b เป็นของ O (n ^ 2) และΘ (n)?
สมมติว่าฉันมีฟังก์ชั่นเชิงเส้นf(n)= an+bวิธีที่ดีที่สุดที่จะพิสูจน์ว่าฟังก์ชันนี้เป็นของ O (n 2 ) และΘ(n)อะไร ฉันไม่ต้องการความแม่นยำทางคณิตศาสตร์ที่นี่ ฉันต้องการโปรแกรมเมอร์ตอบ บางวิธีตรรกะในการอธิบาย นี่คือเหตุผลที่ฉันไม่ได้โพสต์คำถามในวิชาถาม - ตอบทางคณิตศาสตร์และแทนที่ในคำถามคำตอบโปรแกรมเมอร์

3
มีหนังสืออัลกอริทึมใดบ้างที่สอนเช่น Head First series หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ในฐานะโปรแกรมเมอร์ Java ฉันจำเป็นต้องเรียนรู้อัลกอริทึม (สำหรับการเขียนโปรแกรมความท้าทาย) ฉันอ่าน Head First Series (JAVA เป็นของฉัน) และพวกเขาก็เป็นมิตรกับสมอง ดังนั้นฉันจึงสงสัยว่าจะมีหนังสืออัลกอริทึมใดที่จะเข้าใจได้ง่ายและไปที่ปมของแต่ละอัลโก
12 java  books  algorithms 

7
จัดเรียงอัลกอริทึมที่ทำงานกับข้อมูลจำนวนมาก
ฉันกำลังมองหาอัลกอริทึมการเรียงลำดับที่สามารถทำงานกับข้อมูลจำนวนมากได้เช่นสามารถทำงานได้แม้ว่าชุดข้อมูลทั้งหมดไม่สามารถเก็บไว้ในหน่วยความจำหลักได้ในครั้งเดียว ผู้สมัครคนเดียวที่ฉันพบจนถึงขณะนี้คือการเรียงลำดับการผสาน: คุณสามารถใช้อัลกอริทึมในลักษณะที่จะสแกนชุดข้อมูลของคุณในแต่ละการผสานโดยไม่ต้องเก็บข้อมูลทั้งหมดในหน่วยความจำหลักในครั้งเดียว การเปลี่ยนแปลงของ merge sort ฉันมีในใจได้อธิบายไว้ในบทความนี้ในส่วนของการใช้งานด้วยเทปไดรฟ์ ฉันคิดว่านี่เป็นทางออกที่ดี (มีความซับซ้อน O (nx log (n)) แต่ฉันอยากรู้ว่ามีวิธีการเรียงลำดับอื่น ๆ (เร็วกว่า) เรียงลำดับที่สามารถทำงานกับชุดข้อมูลขนาดใหญ่ที่ไม่เหมาะกับหน่วยความจำหลัก แก้ไข นี่คือรายละเอียดเพิ่มเติมตามคำตอบที่ต้องการ: ข้อมูลจะต้องมีการเรียงลำดับเป็นระยะเช่นหนึ่งครั้งในหนึ่งเดือน ฉันไม่จำเป็นต้องแทรกบางระเบียนและมีการเรียงลำดับข้อมูลที่เพิ่มขึ้น ไฟล์ข้อความตัวอย่างของฉันมีขนาดประมาณ 1 GB UTF-8 แต่ฉันต้องการแก้ปัญหาโดยทั่วไปแม้ว่าไฟล์จะเป็น 20 GB ก็ตาม ไม่ได้อยู่ในฐานข้อมูลและเนื่องจากข้อ จำกัด อื่น ๆ จึงไม่สามารถทำได้ ข้อมูลถูกทิ้งโดยผู้อื่นเป็นไฟล์ข้อความฉันมีรหัสของตัวเองเพื่ออ่านไฟล์ข้อความนี้ รูปแบบของข้อมูลเป็นไฟล์ข้อความ: อักขระบรรทัดใหม่เป็นตัวคั่นเร็กคอร์ด การปรับปรุงที่เป็นไปได้อย่างหนึ่งที่ฉันนึกไว้คือการแบ่งไฟล์ออกเป็นไฟล์ที่มีขนาดเล็กพอที่จะเรียงในหน่วยความจำและท้ายที่สุดผสานไฟล์เหล่านี้ทั้งหมดโดยใช้อัลกอริทึมที่ฉันได้อธิบายไว้ข้างต้น

2
อัลกอริทึมของ Dijkstra เป็นทางออกที่เหมาะสมสำหรับปัญหาการกำหนดเส้นทางสัญญาณนี้หรือไม่?
ฉันอยู่ในกระบวนการพัฒนาการจัดการสัญญาณและโมดูลการกำหนดเส้นทางสำหรับระบบภาพและเสียงแบบบูรณาการและกำลังออกแบบด้วยความตั้งใจที่จะยืดหยุ่นได้มากที่สุดในเครือข่ายการกระจายสัญญาณที่แตกต่างกัน จุดประสงค์ของโมดูลคือการจัดการการจัดเส้นทางข้ามสวิตช์เมทริกซ์แบบซ้อนจำนวน1และจัดการการแปลงรูปแบบที่จำเป็น ทางออกที่ดีที่สุดที่ฉันได้สำรวจ ณ จุดนี้คือการแมปเครือข่ายกับกราฟโดยมีจุดยอดแยกสำหรับแต่ละประเภทสัญญาณที่สนับสนุนโดยสวิตช์และจากนั้นจะเชื่อมต่อผ่านโหนดที่เป็นตัวแทนของตัวประมวลผลวิดีโอที่จัดการการแปลงรูปแบบ สีแสดงถึงรูปแบบสัญญาณ โหนดรอบเป็นสวิตช์แหล่งหรืออ่างล้างจาน Square nodes เป็นตัวประมวลผลวิดีโอซึ่งทำการแปลงรูปแบบ จากนั้นฉันสามารถใช้การดำเนินการตามอัลกอริธึมของ Dijkstraเพื่อระบุเส้นทางที่จะต้องเกิดขึ้นเพื่อรับอินพุต X ไปยังเอาต์พุต Y ซึ่งควรอนุญาตให้มีข้อมูลเกี่ยวกับการกำหนดค่าอินพุต / เอาต์พุตของสวิตช์และโปรเซสเซอร์ทั้งหมด และโมดูลปรับตาม นี่เป็นวิธีแก้ปัญหาที่เหมาะสมหรือมีแนวทางอื่นที่อาจคุ้มค่าในการตรวจสอบหรือไม่? 1 aka 'crossbar switch' ซึ่งเป็นเราเตอร์วิดีโอที่มีเอาต์พุต M อินพุต x N ซึ่งรองรับการเชื่อมต่อแบบหนึ่งต่อหลายคน อุปกรณ์ phsyical แต่ละเครื่องอาจรองรับสัญญาณได้หลายรูปแบบและอาจหรือไม่สามารถทำการแปลงรูปแบบใด ๆ แก้ไข:ดังกล่าวโดยPéterTörökกราฟไม่จำเป็นต้องเป็นต้นไม้แผนภาพเป็นตัวอย่างง่าย ๆ เพื่อแสดงความคิด เมื่อนำไปใช้ในหลายเส้นทาง 'โลกแห่งความจริง' อาจมีอยู่ซึ่งเสนอระดับความหมายที่แตกต่างกัน (DVI> VGA> องค์ประกอบ> คอมโพสิต) ซึ่งฉันวางแผนที่จะนำเสนอด้วยน้ำหนักขอบ แก้ไข 2:นี่คือตัวอย่างที่ครอบคลุมมากขึ้นเล็กน้อยโดยมีการระบุทิศทางและการแสดงเครือข่ายที่ประกอบด้วยสัญญาณสองประเภท ตัวอย่างเริ่มต้นได้รับการแก้ไขเล็กน้อยเพื่อให้แต่ละอินพุตและเอาต์พุตบนอุปกรณ์ถูกกำหนดเป็นโหนดแบบไม่ต่อเนื่องเนื่องจากจะให้ข้อมูลที่จำเป็นสำหรับการควบคุมการเลือกเส้นทาง / อินพุตเมทริกซ์

2
การแปลงปัญหาเครื่องหลังที่ถูก จำกัด เป็น 0/1 ปัญหาเครื่องหลัง
ฉันเจอปัญหาที่เป้าหมายคือการใช้การเขียนโปรแกรมแบบไดนามิก (แทนที่จะเป็นวิธีการอื่น) มีระยะห่างที่จะขยายและชุดสายเคเบิลที่มีความยาวต่างกัน จำนวนสายเคเบิลขั้นต่ำที่ต้องใช้ในการขยายระยะทางคือเท่าไหร่? สำหรับฉันนี่ดูเหมือนปัญหาเป้แต่เนื่องจากอาจมีทวีคูณของความยาวที่เฉพาะเจาะจงมันเป็นปัญหาเครื่องหลังที่ถูกผูกไว้แทนที่จะเป็นปัญหาเครื่องหลัง 0/1 (รักษาคุณค่าของแต่ละรายการให้เป็นน้ำหนักของมัน) การใช้วิธีการที่ไร้เดียงสา (และไม่สนใจเกี่ยวกับการขยายพื้นที่การค้นหา) วิธีที่ฉันใช้ในการแปลงปัญหาเป้สะพายหลังเป็นปัญหา 0/1 เป้เพียงแค่ แยกหลายรายการเป็นซิงเกิ้ลและใช้อัลกอริทึมการเขียนโปรแกรมแบบไดนามิกที่รู้จักกันดี น่าเสียดายสิ่งนี้นำไปสู่ผลลัพธ์ที่ดีที่สุดย่อย ตัวอย่างเช่นสายเคเบิลที่กำหนด: 1 x 10ft, 1 x 7ft, 1 x 6ft, 5 x 3ft, 6 x 2ft, 7 x 1ft หากระยะห่างเป้าหมายคือ 13ft อัลกอริทึม DP เลือก 7 + 6 เพื่อขยายระยะทาง อัลกอริทึมโลภน่าจะเลือกได้ 10 + 3 แต่มันก็คือความเสมอภาคสำหรับจำนวนสายเคเบิลขั้นต่ำ ปัญหาเกิดขึ้นเมื่อพยายามขยาย 15 ฟุต …
12 algorithms 

4
อัลกอริทึมที่อยู่เบื้องหลังการหยุด GC ชั่วคราวมีอะไรบ้าง
บางภาษาสำหรับจาวา exemple ได้แนะนำ GC ชั่วคราว GC เหล่านั้นสามารถทำงานส่วนใหญ่ได้โดยไม่ต้องหยุดทั้งโลก เห็นได้ชัดว่าเป็นปัญหาที่ค่อนข้างยากเพราะมันต้องการการวิเคราะห์หน่วยความจำเมื่อเธรดกำลังแก้ไขมันส่งผลให้ข้อมูลที่สามารถใช้ในการเริ่มต้นของกระบวนการและไม่ได้อีกต่อไปเมื่อมันเสร็จสิ้นหรือข้อมูลที่ดูเหมือนจะเป็น garbages แต่เนื่องจาก การอ้างอิงถูกย้ายในหน่วยความจำและไม่เคยปรากฏที่ใดที่ GC กำลังมองหา ดังนั้นโดยพื้นฐานแล้วอัลกอริธึมคืออะไร? บทความวิจัยหรือลิงค์บทความทางเทคนิคจริง ๆ จะถือว่าเป็นคำตอบที่ถูกต้องเนื่องจากหัวข้อนี้เป็นเรื่องทางเทคนิคจริงๆ

5
อัลกอริทึมการเปลี่ยนแคชที่มีประสิทธิภาพมากที่สุด [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา วิกิพีเดียแสดงรายการ 11 ขั้นตอนวิธีการเปลี่ยนแคช สมมติว่าฉันไม่รู้อะไรเกี่ยวกับแอปพลิเคชันที่ฉันจะพัฒนาฉันควรใช้อะไรเป็นอัลกอริทึมการแทนที่แคช "เริ่มต้น" ถ้าฉันจำได้อย่างถูกต้องจากระบบปฏิบัติการของฉัน LRU เป็นอัลกอริทึมการแทนที่แคชทั่วไปที่ดีที่สุด แต่บางทีฉันเข้าใจผิด นอกจากนี้นี่เป็นคำถามเชิงวิชาการเล็กน้อยเนื่องจากโดยทั่วไปหน่วยความจำหลักมีราคาถูกและมีมากมายและฉันไม่ต้องกังวลเกี่ยวกับขนาดแคชมากเกินไป

12
อัลกอริทึมคืออะไร?
อัลกอริทึมคืออะไรเช่นเดียวกับในอัลกอริทึมหมายถึงอะไร? เล็ก ๆ น้อย ๆ ที่ฉันเข้าใจคำว่ามันไม่ได้เฉพาะกับภาษาเฉพาะหรือรูปแบบการออกแบบ แต่มันเป็นหนึ่งในหลักการพื้นฐานที่สุด (ดังนั้นฉันเดาว่าคำถามนี้ทำให้ฉันดูโง่) หนึ่งใน "ตัวเลือก" ที่ฉันมีความเข้าใจคือว่ามันหมายถึงวิธีการทำบางสิ่งบางอย่างที่สามารถเขียนเป็นรายการในรหัสเทียม เมื่อฉันเขียนโค้ดที่ซับซ้อนมากขึ้นฉันคิดว่าสิ่งที่ต้องทำคืออะไรและวิธีที่ฉันจะไปที่นั่น (ไม่ใช่ภาษาการเขียนโปรแกรม) จากนั้นเขียนเป็นโค้ด เป็นวิธีที่ดีที่จะไปเกี่ยวกับเรื่องนี้และเป็นสิ่งที่จะทำอย่างไรกับอัลกอริทึม? (ฉันอยากถามที่นี่มากกว่าใน Stackoverflow เพราะมันไม่เกี่ยวกับปัญหา / ภาษาที่เฉพาะเจาะจงรวมทั้งฉันรู้สึกว่าคนส่วนใหญ่ที่นี่รู้ว่า 'ทำไม' หรืออย่างน้อยคำตอบที่นี่มีรายละเอียดมากกว่าใน Stackoverflow มันแตกต่างกันที่ไหนฉันขอโทษถ้าฉันควรจะถามที่นั่น)
12 algorithms 

13
เหตุใดจึงดีกว่าสำหรับโปรแกรมเมอร์ที่จะออกแบบอัลกอริทึมก่อนที่จะเริ่มเขียนโค้ด?
อัลกอริทึมที่เหมาะสมช่วยปรับปรุงคุณภาพและประสิทธิภาพของโปรแกรมหรือไม่? เราสามารถผลิตโปรแกรมที่มีคุณภาพดีได้หรือไม่ อัลกอริทึมที่เหมาะสมเป็นสิ่งจำเป็นสำหรับการเขียนโปรแกรมสมัยใหม่หรือไม่?
12 algorithms 

2
อัลกอริธึมมาบรรจบกันหมายความว่าอะไร?
ฉันเจอคำศัพท์นี้ตลอดเวลาเมื่ออ่านเกี่ยวกับการเรียนรู้การเสริมแรงเช่นในประโยคนี้: หากปัญหานั้นเป็นแบบอย่างด้วยความระมัดระวังอัลกอริธึมการเรียนรู้การเสริมแรงบางอย่างสามารถมาบรรจบกันเพื่อให้เกิดประโยชน์สูงสุดในระดับโลก http://reinforcementlearning.ai-depot.com/ หรือที่นี่: สำหรับนโยบายคงที่ Pi ใด ๆ อัลกอริทึม TD ที่อธิบายไว้ข้างต้นได้รับการพิสูจน์แล้วว่ามาบรรจบกับ VPi http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node62.html ความเข้าใจของฉันเกี่ยวกับคำว่ามาบรรจบกันก็คือมันหมายถึงหลายสิ่งที่มารวมกันในจุดเดียวกัน แต่สิ่งเดียว (อัลกอริทึม) จะทำเช่นนั้นได้อย่างไร?

1
การจัดทำดัชนีอย่างรวดเร็วของชุดค่าผสม k
ฉันกลับมาทบทวนปัญหาเก่าที่เคยทำมาก่อนหน้านี้แล้ว สถานการณ์ทั่วไปคือ "3 บิตตั้งอยู่ภายในจำนวนเต็ม 8 บิต" เช่น 00000111 ชุดค่าผสมที่ไม่ซ้ำกันทั้งหมดที่มี 3 ชุดบิตสามารถสร้างได้ง่าย (ตามลำดับ) โดยลูปซ้อนกัน สิ่งที่ฉันสนใจคือชุดค่าดัชนีการแม็พ <-> เช่น "00001011" จะเป็นชุดค่าผสมที่สอง (หรือค่า "1" ในดัชนีแบบ zero-based) จนถึงตอนนี้ฉันวิ่งผ่านชุดค่าผสมทั้งหมดและเก็บไว้ในตารางทำดัชนีค้นหา -> การสนทนาเป็นการดำเนินการ O (1) อีกทางหนึ่งคือ O (ln (n)) ด้วยการค้นหาแบบแบ่งครึ่ง ข้อเสียคือความชัดเจนในเรื่องนี้ถ้าเราเพิ่มโดเมนจนถึงจุดที่ไม่สามารถทำได้ อะไรจะเป็นวิธีง่ายๆในการคำนวณชุดค่าผสม n.th หรือดัชนีสำหรับชุดค่าผสมที่กำหนด ลำดับของการรวมกันจะดี แต่ไม่บังคับ

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

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