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

อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งกำหนดวิธีแก้ปัญหาแบบนามธรรมให้กับปัญหา ใช้แท็กนี้เมื่อปัญหาของคุณเกี่ยวข้องกับการออกแบบอัลกอริทึม

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

8
ค้นหาค่ามัธยฐานที่ใช้งานอยู่จากกระแสของจำนวนเต็ม
ซ้ำเป็นไปได้: อัลกอริทึมค่ามัธยฐานกลิ้งใน C ระบุว่าจำนวนเต็มอ่านจาก data stream ค้นหาค่ามัธยฐานขององค์ประกอบที่อ่านได้อย่างมีประสิทธิภาพ วิธีแก้ปัญหาที่ฉันได้อ่าน: เราสามารถใช้สูงสุดกองด้านซ้ายเพื่อเป็นตัวแทนองค์ประกอบที่น้อยกว่าค่ามัธยฐานที่มีประสิทธิภาพและกองต่ำสุดทางด้านขวาเพื่อเป็นตัวแทนองค์ประกอบที่มากกว่าค่ามัธยฐานที่มีประสิทธิภาพ หลังจากประมวลผลองค์ประกอบที่เข้ามาจำนวนขององค์ประกอบในกองแตกต่างกันมากที่สุด 1 องค์ประกอบ เมื่อทั้งสองฮีปมีจำนวนองค์ประกอบเท่ากันเราจะพบว่าค่าเฉลี่ยของข้อมูลรูทของฮีปนั้นเป็นค่ามัธยฐานที่มีประสิทธิภาพ เมื่อฮีปไม่สมดุลเราจะเลือกค่ามัธยฐานที่มีประสิทธิภาพจากรูทฮีปที่มีองค์ประกอบมากกว่า แต่เราจะสร้าง heap สูงสุดและ heap สูงสุดได้อย่างไรเราจะรู้ค่ามัธยฐานที่มีประสิทธิภาพได้อย่างไร ฉันคิดว่าเราจะแทรก 1 องค์ประกอบใน max-heap แล้วองค์ประกอบ 1 ถัดไปใน min-heap และอื่น ๆ สำหรับองค์ประกอบทั้งหมด ถูกต้องฉันถ้าฉันผิดที่นี่
223 algorithm  heap  median 

30
วิธีการค้นหาองค์ประกอบที่ใหญ่ที่สุด kth ในอาร์เรย์ที่มีความยาวไม่เรียงลำดับ n ใน O (n)?
ฉันเชื่อว่ามีวิธีการหาองค์ประกอบที่ใหญ่ที่สุด kth ในอาร์เรย์ที่มีความยาว n ใน O (n) หรืออาจเป็น "คาดหวัง" O (n) หรือบางสิ่งบางอย่าง เราจะทำสิ่งนี้ได้อย่างไร

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

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

9
บันทึก (n!) = Θ (n ·บันทึก (n)) หรือไม่
ผมจะแสดงให้เห็นว่าการเข้าสู่ระบบ ( n !) = Θ ( n ·เข้าสู่ระบบ ( n )) คำแนะนำที่ได้รับว่าผมควรจะแสดงผูกไว้บนที่มีn nและแสดงขอบเขตล่างด้วย( n / 2) ( n / 2) นี่ดูเหมือนจะไม่ง่ายสำหรับฉัน ทำไมเป็นเช่นนั้น แน่นอนฉันสามารถดูวิธีการแปลงn nเพื่อn ·เข้าสู่ระบบ ( n ) (เช่นเข้าสู่ระบบทั้งสองข้างของสมการ) แต่ที่เป็นชนิดของการทำงานย้อนหลัง อะไรคือแนวทางที่ถูกต้องในการแก้ไขปัญหานี้ ฉันควรจะวาดต้นไม้เรียกซ้ำหรือไม่? ไม่มีอะไรซ้ำซากเกี่ยวกับเรื่องนี้ดังนั้นจึงไม่น่าจะเป็นวิธีการที่น่าสนใจ ..


19
วิธีการตรวจสอบลำดับที่เพิ่มขึ้นที่ยาวที่สุดโดยใช้การเขียนโปรแกรมแบบไดนามิก?
ฉันมีชุดจำนวนเต็ม ฉันต้องการค้นหาชุดลำดับที่เพิ่มขึ้นที่ยาวที่สุดโดยใช้การเขียนโปรแกรมแบบไดนามิก

30
อัลกอริทึมการวางระเบิด
ฉันมีn x mเมทริกซ์ที่ประกอบด้วยจำนวนเต็มไม่เป็นลบ ตัวอย่างเช่น: 2 3 4 7 1 1 5 2 6 2 4 3 4 2 1 2 1 2 4 1 3 1 3 4 1 2 1 4 3 2 6 9 1 6 4 "การทิ้งระเบิด" ลดจำนวนหนึ่งของเซลล์เป้าหมายและเพื่อนบ้านทั้งแปดของมันลงเหลือศูนย์ให้น้อยที่สุด x x x x X x x x x …

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

29
การตรวจจับ endianness โดยทางโปรแกรมในโปรแกรม C ++
มีวิธีการเขียนโปรแกรมเพื่อตรวจสอบว่าคุณอยู่ในสถาปัตยกรรมขนาดใหญ่หรือเล็กหรือไม่? ฉันต้องสามารถเขียนโค้ดที่จะทำงานบนระบบ Intel หรือ PPC และใช้รหัสเดียวกันทุกประการ (เช่นไม่มีการคอมไพล์แบบมีเงื่อนไข)

27
ฉันจะค้นหาหมายเลขที่ใหญ่ที่สุดในอาร์เรย์ JavaScript ได้อย่างไร
ฉันมีอ็อบเจกต์ JavaScript Array อย่างง่าย ๆ ที่มีตัวเลขไม่กี่ตัว [267, 306, 108] มีฟังก์ชั่นที่จะหาจำนวนมากที่สุดในอาเรย์นี้หรือไม่?

12
อัลกอริทึมสำหรับการพอง / การยุบ (การชดเชยการบัฟเฟอร์) รูปหลายเหลี่ยม
ฉันจะ "ขยาย" รูปหลายเหลี่ยมได้อย่างไร นั่นคือฉันต้องการทำสิ่งที่คล้ายกับนี้: ความต้องการคือขอบ / จุดของรูปหลายเหลี่ยมใหม่ (พองตัว) นั้นอยู่ที่ระยะคงที่เท่าเดิมจากรูปหลายเหลี่ยมเก่า (ดั้งเดิม) (บนภาพตัวอย่างที่พวกมันไม่ได้ใช้, เนื่องจากมันจะต้องใช้ส่วนโค้งสำหรับจุดยอดที่สูงเกินจริง) ลืมเรื่องนั้นตอนนี้;)) ระยะทางคณิตศาสตร์สำหรับสิ่งที่ฉันกำลังมองหาเป็นจริงภายใน / ภายนอกรูปหลายเหลี่ยม offseting +1 ไปที่ balint เพื่อชี้สิ่งนี้ การตั้งชื่อที่เป็นทางเลือกรูปหลายเหลี่ยมบัฟเฟอร์ ผลการค้นหาของฉัน: นี่คือลิงค์บางส่วน: การสำรวจกลยุทธ์การหักล้างรูปหลายเหลี่ยม รูปหลายเหลี่ยมชดเชยปัญหา บัฟเฟอร์ข้อมูลรูปหลายเหลี่ยม

12
โยนคนที่อ้วนที่สุดออกจากเครื่องบินมากเกินไป
สมมติว่าคุณมีเครื่องบินและมีเชื้อเพลิงน้อย เว้นแต่ว่าเครื่องบินจะลดน้ำหนักผู้โดยสารลง 3,000 ปอนด์มันจะไม่สามารถไปถึงสนามบินถัดไปได้ เพื่อช่วยชีวิตคนจำนวนมากที่สุดเราอยากจะโยนคนที่หนักที่สุดออกจากเครื่องบินก่อน และใช่มีผู้คนนับล้านบนเครื่องบินและเราต้องการอัลกอริธึมที่เหมาะสมที่สุดในการค้นหาผู้โดยสารที่หนักที่สุดโดยไม่จำเป็นต้องเรียงลำดับรายการทั้งหมด นี่เป็นปัญหาพร็อกซีสำหรับสิ่งที่ฉันพยายามรหัสใน C ++ ฉันต้องการจะทำ "partial_sort" ในรายการผู้โดยสารโดยน้ำหนัก แต่ฉันไม่ทราบว่าฉันต้องการองค์ประกอบกี่ชิ้น ฉันสามารถใช้อัลกอริทึม "partial_sort" ของตัวเอง ("partial_sort_accumulate_until") ได้ แต่ฉันสงสัยว่ามีวิธีที่ง่ายกว่าในการทำสิ่งนี้โดยใช้ STL มาตรฐาน
200 c++  algorithm  sorting  stl 

14
เรียงลำดับ Radix ในสถานที่
นี่คือข้อความยาว กรุณาทนกับฉัน ต้มคำถามก็คือ: มีอัลกอริทึมการเรียงลำดับ Radix แบบทำงานได้หรือไม่? เบื้องต้น ฉันมีสตริงความยาวคงที่ขนาดเล็กจำนวนมากที่ใช้เฉพาะตัวอักษร“ A”,“ C”,“ G” และ“ T” (ใช่คุณเดาได้แล้วว่า: DNA ) ที่ฉันต้องการเรียงลำดับ ในขณะที่ผมใช้std::sortซึ่งใช้introsortในการใช้งานร่วมกันทั้งหมดของSTL ใช้งานได้ค่อนข้างดี อย่างไรก็ตามฉันเชื่อมั่นว่าการเรียงตัวของ Radix ตรงกับปัญหาที่ฉันตั้งไว้อย่างสมบูรณ์แบบและควรทำงานได้ดีขึ้นมากในทางปฏิบัติ รายละเอียด ฉันได้ทดสอบสมมติฐานนี้ด้วยการใช้งานที่ไร้เดียงสามากและสำหรับอินพุตที่ค่อนข้างเล็ก (ตามลำดับ 10,000) นี่เป็นจริง (ดีอย่างน้อยก็เร็วกว่าสองเท่า) อย่างไรก็ตามรันไทม์จะลดลงอย่างมากเมื่อขนาดของปัญหาใหญ่ขึ้น ( N > 5,000,000) เหตุผลชัดเจน: การเรียง radix ต้องคัดลอกข้อมูลทั้งหมด (มากกว่าหนึ่งครั้งในการใช้งานไร้เดียงสาของฉันจริง) ซึ่งหมายความว่าฉันได้ใส่ ~ 4 GiB ลงในหน่วยความจำหลักซึ่งฆ่าได้อย่างชัดเจน แม้ว่ามันจะไม่เป็นเช่นนั้นก็ตามฉันก็ไม่สามารถใช้หน่วยความจำนี้ได้มากขนาดของปัญหาจะใหญ่ขึ้น ใช้เคส อัลกอริทึมนี้ควรทำงานกับความยาวสตริงใด ๆ ระหว่าง 2 ถึง …

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