Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม
การเขียนโปรแกรม
  1. อัลกอริทึม Knuth-Morris-Pratt

    Knuth Morris Pratt (KMP) เป็นอัลกอริทึมที่ตรวจสอบอักขระจากซ้ายไปขวา เมื่อรูปแบบมีรูปแบบย่อยปรากฏมากกว่าหนึ่งรูปแบบในรูปแบบย่อย จะใช้คุณสมบัตินั้นเพื่อปรับปรุงความซับซ้อนของเวลา รวมถึงในกรณีที่เลวร้ายที่สุด ความซับซ้อนของเวลาของ KMP คือ O(n) อินพุตและเอาต์พุต Input: Main String: “AAAABAAAAABBB

  2. อัลกอริทึมของ Manacher

    ในการค้นหาสตริงย่อยพาลินโดรมที่ยาวที่สุดจากสตริง เราสามารถใช้อัลกอริทึมของ Manacher โดยการเลือกอักขระแต่ละตัว เราจะพยายามค้นหาว่ามี palindrome ตัวใดที่ใช้ตัวชี้ซ้ายและขวา มีอาร์เรย์อื่นสำหรับเก็บข้อมูล จากข้อมูลนั้นเราสามารถค้นหา palindrome ได้อย่างง่ายดาย สำหรับอักขระแต่ละตัว อาร์เรย์จะเก็บข้อมูล ห

  3. การค้นหารูปแบบไร้เดียงสา

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

  4. อัลกอริธึม Rabin-Karp

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

  5. อาร์เรย์ต่อท้าย

    จากสตริงที่กำหนด เราจะได้ส่วนต่อท้ายที่เป็นไปได้ทั้งหมด หลังจากเรียงลำดับคำต่อท้ายในลำดับศัพท์แล้ว เราก็จะได้อาร์เรย์ส่วนต่อท้าย อาร์เรย์ต่อท้ายยังสามารถสร้างได้โดยใช้ทรีส่วนต่อท้าย โดยการใช้ DFS traversal ของ suffix tree เราจะได้ suffix arrays อาร์เรย์ต่อท้ายมีประโยชน์ในการค้นหาส่วนต่อท้ายในเวลาเชิ

  6. ลองคำต่อท้ายทั้งหมด

    จากข้อความ เราสามารถสร้างส่วนต่อท้ายทั้งหมดเพื่อสร้างโครงสร้างแบบต้นไม้ได้ เรารู้ว่าทุกรูปแบบที่นำเสนอในข้อความจะต้องเป็นคำนำหน้าของคำต่อท้ายที่เป็นไปได้ในข้อความ โดยการสร้าง Trie ของส่วนต่อท้ายทั้งหมด เราสามารถค้นหาสตริงย่อยใดๆ ในเวลาเชิงเส้น ทุกส่วนต่อท้ายลงท้ายด้วยสัญลักษณ์สิ้นสุดสตริง จากแต่ละโห

  7. Z Algorithm

    อัลกอริทึมนี้มีชื่อว่า Z Algorithm เพราะในอัลกอริทึมนี้ เราจำเป็นต้องสร้างอาร์เรย์ Z ขนาดของอาร์เรย์ Z เท่ากับขนาดข้อความ อาร์เรย์นี้ใช้เพื่อเก็บความยาวของสตริงย่อยที่ยาวที่สุดที่เป็นไปได้โดยเริ่มจากอักขระปัจจุบันของสตริงหลัก ในตอนแรก รูปแบบและข้อความหลักจะถูกเชื่อมด้วยสัญลักษณ์พิเศษซึ่งไม่มีอยู่ในข

  8. Hamiltonian Cycle

    ในกราฟที่ไม่ระบุทิศทาง เส้นทางแฮมิลตันคือเส้นทางที่เข้าชมแต่ละจุดยอดเพียงครั้งเดียว และวัฏจักรหรือวงจรแฮมิลตันเป็นเส้นทางแฮมิลตันที่มีขอบจากจุดยอดสุดท้าย ถึงจุดสุดยอดแรก ในปัญหานี้ เราจะพยายามตรวจสอบว่ากราฟประกอบด้วยวัฏจักรแฮมิลตันหรือไม่ และเมื่อมีวัฏจักรแฮมิลตัน ให้พิมพ์วงจรด้วย อินพุตและเอาต์พุต

  9. อัลกอริธึม Spanning Tree ขั้นต่ำของ Kruskal

    มีกราฟเชื่อมต่อ G(V, E) และน้ำหนักหรือต้นทุนสำหรับทุกขอบ อัลกอริธึมของ Kruskal จะค้นหาต้นไม้ที่ทอดข้ามขั้นต่ำโดยใช้กราฟและต้นทุน เป็นแนวทางแบบผสานต้นไม้ ในขั้นต้น มีต้นไม้ที่แตกต่างกัน อัลกอริธึมนี้จะรวมเข้าด้วยกันโดยนำขอบที่มีต้นทุนต่ำที่สุดมารวมกันเป็นต้นไม้ต้นเดียว ในปัญหานี้ ขอบทั้งหมดจะแสดง

  10. ปัญหาการเปลี่ยนเหรียญขั้นต่ำ

    มีรายการเหรียญ C(c1, c2, ……Cn) ให้และมีค่า V ให้ด้วย ตอนนี้ปัญหาคือการใช้จำนวนเหรียญขั้นต่ำเพื่อสร้างโอกาส V. หมายเหตุ - สมมติว่ามีเหรียญนับไม่ถ้วน C ในปัญหานี้เราจะพิจารณาชุดของเหรียญที่แตกต่างกัน C{1, 2, 5, 10} มอบให้ มีเหรียญแต่ละประเภทเป็นอนันต์ ในการเปลี่ยนแปลงมูลค่าที่ร้องขอ เราจะพยายามใช้จ

  11. ปัญหาจำนวนแพลตฟอร์มขั้นต่ำ

    รายการเวลาที่มาถึงและออกเดินทางจะได้รับ ตอนนี้ปัญหาอยู่ที่การหาจำนวนชานชาลาขั้นต่ำที่จำเป็นสำหรับทางรถไฟเนื่องจากไม่มีรถไฟคอยรอ โดยการเรียงลำดับเวลาทั้งหมดตามลำดับการเรียงลำดับ เราจะสามารถค้นหาวิธีแก้ปัญหาได้ง่าย มันจะง่ายต่อการติดตามเมื่อรถไฟมาถึงแต่ไม่ออกจากสถานี ความซับซ้อนของเวลาของปัญหานี้คือ

  12. อัลกอริธึม Spanning Tree ขั้นต่ำของ Prim

    มีกราฟเชื่อมต่อ G(V, E) และน้ำหนักหรือต้นทุนสำหรับทุกขอบ อัลกอริธึมของ Prim จะค้นหาต้นไม้ที่ทอดข้ามขั้นต่ำจากกราฟ G เป็นแนวทางการปลูกต้นไม้ อัลกอริทึมนี้ต้องการค่าเมล็ดพันธุ์เพื่อเริ่มต้นทรี ยอดของเมล็ดโตจนเกิดเป็นต้นไม้ทั้งหมด ปัญหาจะได้รับการแก้ไขโดยใช้สองชุด ชุดหนึ่งถือโหนดที่เลือกไว้แล้ว แล

  13. MST ของ Prim สำหรับการเป็นตัวแทนรายการที่อยู่ติดกัน

    คล้ายกับอัลกอริธึมก่อนหน้า ข้อแตกต่างเพียงอย่างเดียวคือ กราฟ G(V, E) จะแสดงโดยรายการที่อยู่ติดกัน การแสดงรายการที่อยู่ติดกันความซับซ้อนของเวลาคือ O(E log V) อินพุตและเอาต์พุต Input: The cost matrix: Output: Edge: A--B And Cost: 1 Edge: B--E And Cost: 2 Edge: A--C And Cost: 3 Edge: A--D And Cost: 4

  14. ปัญหาเป้เศษส่วน

    มีรายการของรายการ แต่ละรายการมีค่าและน้ำหนักของตัวเอง สามารถวางสิ่งของในเป้ที่น้ำหนักสูงสุดคือ W ปัญหาคือการหาน้ำหนักที่น้อยกว่าหรือเท่ากับ W และค่าจะถูกขยายให้ใหญ่สุด ปัญหาเป้มีสองประเภท 0 – 1 เป้ เป้เศษส่วน สำหรับเป้ 0 – 1 สิ่งของไม่สามารถแบ่งออกเป็นชิ้นเล็ก ๆ และสำหรับเป้เศษส่วน สิ่งของสามารถ

  15. อัลกอริทึม Aho-Corasick

    อัลกอริธึมนี้มีประโยชน์ในการค้นหาการเกิดขึ้นทั้งหมดของชุดคีย์เวิร์ดที่ระบุทั้งหมด เป็นอัลกอริธึมการจับคู่พจนานุกรมชนิดหนึ่ง ใช้โครงสร้างแบบต้นไม้โดยใช้คำสำคัญทั้งหมด หลังจากสร้างต้นไม้แล้ว มันพยายามแปลงต้นไม้ให้เป็นหุ่นยนต์เพื่อทำการค้นหาในเวลาเชิงเส้น Aho-Corasick Algorithm มีสามขั้นตอนที่แตกต่างกั

  16. ค้นหารูปแบบแอนนาแกรม

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

  17. ฮิวริสติกตัวละครไม่ดี

    วิธีฮิวริสติกอักขระที่ไม่ดีเป็นหนึ่งในแนวทางของอัลกอริทึม Boyer Moore อีกวิธีหนึ่งคือ Good Suffix Heuristic ในวิธีนี้ เราจะพยายามค้นหาอักขระที่ไม่ถูกต้อง ซึ่งหมายถึงอักขระของสตริงหลักซึ่งไม่ตรงกับรูปแบบ เมื่อความไม่ตรงกันเกิดขึ้น เราจะเปลี่ยนรูปแบบทั้งหมดจนกว่ารูปแบบที่ไม่ตรงกันจะกลายเป็นการจับคู่ ม

  18. อัลกอริทึม Boyer Moore

    เป็นอีกแนวทางหนึ่งของ Boyer Moore Algorithm บางครั้งเรียกว่า Good Suffix Heuristic method สำหรับกรณีนี้ ตารางการประมวลผลล่วงหน้าจะถูกสร้างขึ้นเป็นตารางส่วนต่อท้าย ในโพรซีเดอร์นี้ สตริงย่อยหรือรูปแบบจะถูกค้นหาจากอักขระตัวสุดท้ายของรูปแบบ เมื่อสตริงย่อยของสตริงหลักตรงกับสตริงย่อยของรูปแบบ สตริงย่อยจะย

  19. เรียงลำดับด่วน

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

  20. Radix Sort

    Radix sort เป็นอัลกอริธึมการเรียงลำดับแบบไม่เปรียบเทียบ อัลกอริธึมการเรียงลำดับนี้ทำงานบนคีย์จำนวนเต็มโดยการจัดกลุ่มตัวเลขซึ่งมีตำแหน่งและค่าเหมือนกัน ฐานเป็นฐานของระบบตัวเลข อย่างที่เราทราบดีว่าในระบบทศนิยม ฐานหรือฐานคือ 10 ดังนั้นสำหรับการจัดเรียงตัวเลขทศนิยม เราต้องใช้กล่องตำแหน่ง 10 ช่องเพื่อเก็

Total 1466 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:70/74  20-คอมพิวเตอร์/Page Goto:1 64 65 66 67 68 69 70 71 72 73 74