หน้าแรก
หน้าแรก
อัลกอริทึมนี้ใช้เพื่อพิมพ์องค์ประกอบอาร์เรย์ในลักษณะเกลียว ในตอนแรกเริ่มต้นจากแถวแรก ให้พิมพ์เนื้อหาทั้งหมดแล้วตามด้วยคอลัมน์สุดท้ายเพื่อพิมพ์ จากนั้นจึงพิมพ์แถวสุดท้ายและต่อไปเรื่อยๆ ดังนั้นจึงพิมพ์องค์ประกอบในลักษณะเกลียว ความซับซ้อนของเวลาของอัลกอริทึมนี้คือ O(MN), M คือจำนวนแถวและ N คือจำนวนคอ
อัลกอริทึม อัลกอริธึมคือชุดคำสั่งที่มีขอบเขตจำกัด ซึ่งหากปฏิบัติตาม จะทำให้งานนั้นสำเร็จลุล่วง ไม่ได้เจาะจงภาษา เราสามารถใช้ภาษาและสัญลักษณ์ใดๆ แทนคำสั่งได้ เกณฑ์ของอัลกอริทึม ป้อนข้อมูล: อินพุตเป็นศูนย์หรือมากกว่านั้นได้รับการจัดหาจากภายนอกให้กับอัลกอริทึม ผลลัพธ์: อัลกอริทึมสร้างเอาต์พุตอย่างน้อ
การวิเคราะห์เชิงสัญลักษณ์ เมื่อใช้การวิเคราะห์แบบ asymptotic เราจะได้รับแนวคิดเกี่ยวกับประสิทธิภาพของอัลกอริธึมตามขนาดอินพุต เราไม่ควรคำนวณเวลาทำงานที่แน่นอน แต่เราควรค้นหาความสัมพันธ์ระหว่างเวลาทำงานและขนาดอินพุต เราควรติดตามเวลาทำงานเมื่อขนาดของอินพุตเพิ่มขึ้น สำหรับความซับซ้อนของพื้นที่ เป้าหมา
สัญลักษณ์กำกับ เครื่องหมาย Asymptotic ใช้เพื่อแสดงถึงความซับซ้อนของอัลกอริธึมสำหรับการวิเคราะห์เชิง asymptotic สัญกรณ์เหล่านี้เป็นเครื่องมือทางคณิตศาสตร์เพื่อแสดงถึงความซับซ้อน มีสัญลักษณ์สามแบบที่ใช้กันทั่วไป สัญลักษณ์บิ๊กโอ้ สัญกรณ์ Big-Oh (O) ให้ขอบเขตบนสำหรับฟังก์ชัน f(n) ถึงภายในปัจจัยคงที่
การวิเคราะห์ค่าตัดจำหน่าย การวิเคราะห์นี้ใช้เมื่อการดำเนินการเป็นครั้งคราวช้ามาก แต่การดำเนินการส่วนใหญ่ที่ดำเนินการบ่อยมากจะเร็วกว่า โครงสร้างข้อมูลเราต้องการการวิเคราะห์ค่าตัดจำหน่ายสำหรับ Hash Tables, Disjoint Sets เป็นต้น ในตารางแฮช เวลาส่วนใหญ่ที่ความซับซ้อนของเวลาในการค้นหาคือ O(1) แต่บางครั
ความซับซ้อนของอวกาศ ความซับซ้อนของพื้นที่คือจำนวนหน่วยความจำที่ใช้โดยอัลกอริทึม (รวมถึงค่าอินพุตของอัลกอริทึม) เพื่อดำเนินการอย่างสมบูรณ์และสร้างผลลัพธ์ เรารู้ว่าการรันอัลกอริธึมจะต้องโหลดลงในหน่วยความจำหลัก หน่วยความจำสามารถใช้ได้ในรูปแบบต่างๆ: ตัวแปร (ซึ่งรวมถึงค่าคงที่และค่าชั่วคราว) คำแนะนำโป
รูปแบบการประมาณเวลาพหุนาม เราสามารถหาวิธีแก้ปัญหาเวลาพหุนามสำหรับปัญหา NP-Complete เช่น ปัญหา 0-1 เป้ หรือ ปัญหาผลรวมย่อย ปัญหาเหล่านี้เป็นที่นิยมอย่างมากในโลกแห่งความเป็นจริง จึงต้องมีวิธีจัดการกับปัญหาเหล่านี้บ้าง โครงการการประมาณเวลาแบบพหุนาม (PTAS) เป็นประเภทที่ใช้ประมาณอัลกอริธึมสำหรับปัญหากา
การแฮชเป็นกระบวนการสร้างค่าจากข้อความหรือรายการตัวเลขโดยใช้ฟังก์ชันทางคณิตศาสตร์ที่เรียกว่าฟังก์ชันแฮช มีฟังก์ชันแฮชจำนวนมากที่ใช้แป้นตัวเลขหรือตัวอักษรและตัวเลข ฟังก์ชันแฮชต่างๆ แสดงไว้ด้านล่าง: ฟังก์ชันแฮช ต่อไปนี้คือฟังก์ชันแฮชบางส่วน - วิธีการหาร นี่เป็นวิธีที่ง่ายที่สุดในการสร้างฟังก์ชันแฮช ฟ
ให้เราพิจารณาสตริงที่ให้มา เรารู้ว่าสตริงนั้นเป็นลำดับของอักขระ การหมุนพจนานุกรมคือการหมุนของสตริง เพื่อแปลงอักขระตามลำดับพจนานุกรม วิธีแก้ปัญหานั้นง่ายมาก เราแค่เชื่อมสตริงที่กำหนดกับตัวมันเอง จากนั้นในอาร์เรย์อื่น การหมุนของสตริงทั้งหมดจะถูกเก็บไว้ หลังจากนั้นเรียงลำดับอาร์เรย์จากน้อยไปมาก ค่าต่ำส
รายชื่อน็อตต่างๆ และรายการสลักเกลียวอื่นๆ งานของเราคือค้นหาน็อตและโบลท์ที่ตรงกันจากรายการที่กำหนด และกำหนดน็อตนั้นกับโบลท์ เมื่อจับคู่แล้ว ปัญหานี้แก้ไขได้ด้วยเทคนิคการเรียงลำดับอย่างรวดเร็ว โดยการนำองค์ประกอบสุดท้ายของสลักเกลียวมาเป็นเดือย ให้จัดเรียงรายการน็อตใหม่และรับตำแหน่งสุดท้ายของน็อตที่มีโ
รายการล็อคที่แตกต่างกันและรายการกุญแจอีกรายการหนึ่งจะได้รับ งานของเราคือค้นหาการจับคู่ที่ถูกต้องของล็อคและกุญแจจากรายการที่กำหนด และกำหนดกุญแจนั้นด้วยการล็อคเมื่อถูกต้อง ในแนวทางนี้ เราจะสำรวจล็อคทั้งหมดและสร้าง hash-map หลังจากนั้น แต่ละคีย์จะถูกค้นหาใน hash-map เมื่อคีย์ตรงกัน ระบบจะทำเครื่องหมาย
การพิมพ์เรียงสับเปลี่ยนทั้งหมดของสตริงที่กำหนดเป็นตัวอย่างของปัญหาการย้อนรอย เราจะลดขนาดของสตริงย่อยเพื่อแก้ปัญหาย่อย แล้วย้อนกลับอีกครั้งเพื่อรับการเปลี่ยนแปลงอื่นจากส่วนนั้น ตัวอย่างเช่น หากสตริงเป็น ABC การเรียงสับเปลี่ยนทั้งหมดจะเป็น ABC, ACB, BAC, BCA, CAB, CBA ความซับซ้อนของอัลกอริทึมนี้คือ
ความเท่าเทียมกันของตัวเลขขึ้นอยู่กับจำนวน 1 ที่มีอยู่ในเลขฐานสองของตัวเลขนั้น เมื่อการนับ 1s ปัจจุบันเป็นเลขคี่ จะส่งกลับค่าความเท่าเทียมกันของคี่ สำหรับจำนวนคู่ที่ 1 จะคืนค่าความเท่าเทียมกัน อย่างที่เราทราบดีว่าตัวเลขในหน่วยความจำของคอมพิวเตอร์นั้นถูกจัดเก็บเป็นเลขฐานสอง เราจึงสามารถเปลี่ยนตัวเลขไ
การสุ่มตัวอย่างอ่างเก็บน้ำเป็นอัลกอริธึมแบบสุ่ม ในอัลกอริธึมนี้ k รายการจะถูกเลือกจากรายการที่มี n รายการที่แตกต่างกัน เราสามารถแก้ไขได้โดยสร้างอาร์เรย์เป็นอ่างเก็บน้ำขนาด k จากนั้นสุ่มเลือกหนึ่งองค์ประกอบจากรายการหลัก และวางรายการนั้นลงในรายการอ่างเก็บน้ำ เมื่อเลือกหนึ่งรายการครั้งเดียว จะไม่มีการ
พนักงานขายคนหนึ่งอยู่ในเมืองหนึ่ง เขาต้องไปเยี่ยมชมเมืองอื่นๆ ทั้งหมดที่อยู่ในรายการ รวมทั้งมีค่าใช้จ่ายในการเดินทางจากเมืองหนึ่งไปยังอีกเมืองหนึ่งด้วย ค้นหาเส้นทางที่มีค่าใช้จ่ายต่ำสุดในการเยี่ยมชมเมืองทั้งหมดเพียงครั้งเดียวและกลับไปยังเมืองเริ่มต้น กราฟจะต้องสมบูรณ์สำหรับกรณีนี้ ดังนั้นพนักงานขาย
อัลกอริทึมของ Zeller ใช้สำหรับค้นหาวันทำงานจากวันที่ที่ระบุ สูตรหาวันธรรมดาโดยใช้อัลกอริธึมของ Zeller อยู่ที่นี่: สูตรประกอบด้วยตัวแปรบางตัว พวกมันคือ − d - วันที่ m:มันเป็นรหัสเดือน ตั้งแต่เดือนมีนาคมถึงธันวาคมคือ 3 ถึง 12 สำหรับมกราคมคือ 13 และสำหรับเดือนกุมภาพันธ์คือ 14 เมื่อเราพิจารณามกราคม
รายการของสตริงที่กำหนดจะถูกจัดเรียงตามลำดับตัวอักษรและตัวเลขหรือลำดับพจนานุกรม เช่นเดียวกับคำเหล่านี้:Apple, Book, Aim พวกเขาจะถูกจัดเรียงเป็น Aim, Apple, Book หากมีตัวเลขบางตัวสามารถวางไว้ข้างหน้าสตริงตัวอักษรได้ อินพุตและเอาต์พุต Input: A list of strings: Ball Apple Data Area 517 April Man 506 Out
หอคอยฮานอยเป็นปัญหาปริศนา ที่ที่เรามีสามยืนและ n แผ่น เริ่มแรก ดิสก์จะวางอยู่ในสแตนด์แรก เราต้องวางแผ่นดิสก์ลงในแท่นวางที่สามหรือปลายทาง แท่นรองหรือแท่นเสริมสามารถใช้เป็นขาตั้งผู้ช่วยได้ แต่มีกฎบางอย่างที่ต้องปฏิบัติตาม เราโอนได้เพียงแผ่นเดียวต่อการเคลื่อนไหวแต่ละครั้ง หยิบแผ่นบนสุดได้จากขาตั้งเท่
มี N เชือกตามความยาวที่กำหนด เราต้องเชื่อมต่อกับพวกเขา ค่าใช้จ่ายในการต่อเชือกเส้นหนึ่งเข้ากับอีกเส้นคือผลรวมของความยาว เป้าหมายของเราคือการเชื่อมต่อเชือก N ด้วยต้นทุนขั้นต่ำ ปัญหานี้สามารถแก้ไขได้โดยใช้ฮีปทรี เราจะสร้าง min heap เพื่อแทรกความยาวที่แตกต่างกันทั้งหมดก่อน จากนั้นจึงลบรายการขั้นต่ำและ
เลขโรมันเป็นตัวเลขที่ไม่มีตำแหน่ง ตัวเลขบางตัวถูกนำมารวมกันเพื่อสร้างตัวเลขในเลขโรมัน ตัวอย่างเช่น ตัวเลข 75 สามารถแสดงเป็น 75 =50 + 10 + 10 + 5 ได้ ดังนั้นเลขโรมันจึงเป็น LXXV ในปัญหานี้มีรูปแบบทศนิยมหนึ่งหมายเลข หน้าที่ของเราคือแปลงเป็นสตริงตัวเลขโรมัน มีสัญลักษณ์และค่าต่างกันดังนี้ I IV V