การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

3
กอล์ฟอาหารกลางวันฟรี
ค้นหาลำดับการแลกเปลี่ยนที่ให้ผลกำไรสูงสุดโดยมีตารางอัตราแลกเปลี่ยน ยกตัวอย่างเช่นพิจารณาสกุลเงินA riary (สกุลเงินที่ใช้ในบ้านของคุณ), B aht, C edi และD enar โดยที่อัตราจากหนึ่งไปอีกอัตราหนึ่ง ตารางอัตราแลกเปลี่ยนด้านล่าง: TO A B C D A 0.9999 1.719828 4.509549 0.709929 F B 0.579942 0.9999 2.619738 0.409959 R O C 0.219978 0.379962 0.9999 0.149985 M D 1.39986 2.429757 6.409359 0.9999 เห็นได้ชัดว่าการแลกเปลี่ยนAสำหรับAไม่ใช่ความคิดที่ดีเพราะโต๊ะนี้จะคิดเงินคุณอย่างมีความสุขที่ไม่ได้ทำอะไรเลย เห็นได้ชัดน้อยลง แต่เป็นความจริงกับตารางนี้การแลกเปลี่ยนAสำหรับสกุลเงินอื่น ๆ และจากนั้นการแลกเปลี่ยนกลับมาอีกครั้งเป็นผู้สร้างขาดทุน: via B: 1.719828 × …

12
ค้นหาเพลงกล่อมเด็กของนักวางเพลิง
ลองนึกภาพนักวางเพลิงที่เดินไปรอบ ๆ เมืองและเลือกเหยื่อตามรูปแบบที่เฉพาะเจาะจง (หรือมิฉะนั้นให้ลองนึกภาพผึ้งที่บินไปรอบ ๆ สวนและเก็บดอกไม้เพื่อผสมเกสรตามรูปแบบที่เฉพาะเจาะจงมาก ) สมมติว่าเมืองเป็นN ร Nเมทริกซ์ที่Nเป็นจำนวนเต็มสูงกว่าหรือเท่ากับ2 นักวางเพลิงเริ่มต้นจากมุมบนซ้ายและกำหนดจุดMบ้านต่อหน้าพวกเขา (โดยที่Mคือจำนวนบ้านที่พวกเขากำลังอยู่ในขณะนี้) ในขณะที่เปลี่ยนทิศทางที่มันเคลื่อนเข้าหลังไฟแต่ละครั้งตามลำดับ ตะวันออก⟶ใต้⟶ตะวันตก⟶เหนือ⟶ตะวันออก⟶ใต้ ... และอื่น ๆ เพลงกล่อมเด็กของผู้วางเพลิงคือมูลค่าของMที่ทำให้พวกเขาออกจากเมือง (เช่นบ้านหลังสุดท้ายที่พวกเขาไปเยี่ยมก่อนหยุดสิ่งที่น่ารังเกียจ) นี่เป็นวิธีที่ง่ายต่อการเข้าใจด้วยตัวอย่าง ใช้เมทริกซ์ต่อไปนี้เป็นตัวอย่าง: 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 1 เราเริ่มต้นที่มุมบนซ้ายดังนั้นM = 3 …

9
สี่เหลี่ยมที่ใหญ่ที่สุดในอาร์เรย์ 2d
อินพุต บอร์ด: คอนเทนเนอร์ 2D (เมทริกซ์, รายการลิสต์, ฯลฯ ) ของตัวอักษรที่ชอบ: ["B", "C", "C", "C", "C", "B", "B", "C", "A", "A"], ["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"], ["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"], ["B", "B", "B", "A", "C", "B", "A", "C", "B", "A"], ["A", …

1
หมากรุกสามมิติ
เพื่อปกป้องการตัดสินใจของใครบางคนที่ทำให้งงงันคนมักจะพูดว่าคนคนนั้นจะไปหัวของทุกคนและเล่น "หมากรุกสามมิติ" ตอนนี้เป็นโอกาสของคุณที่จะเล่นหมากรุกสามมิติ! กฎระเบียบ มีหมากรุก 3 มิติหลายแบบแต่สำหรับความท้าทายนี้ฉันได้ทำขึ้นมาเอง เวอร์ชันของฉันเหมือนกับหมากรุกทั่วไปยกเว้นชิ้นส่วนนั้นอยู่ภายในลูกบาศก์แทนที่จะเป็นสี่เหลี่ยมจัตุรัสและตอนนี้มีมิติของการเคลื่อนไหวเพิ่มเติม ที่จะทำให้ความท้าทายนี้ง่ายมีไม่มีเบี้ยและไม่มี castling การเคลื่อนไหวของชิ้น (ทิศทางเข็มทิศหมายถึงการเคลื่อนไหวที่จะเกิดขึ้นบนกระดานหมากรุกมาตรฐานขึ้นและลงหมายถึงการเคลื่อนที่ในแนวตั้งบนกระดานหมากรุก 3 มิติ) King - มี 26 สี่เหลี่ยมซึ่งสามารถไปในเทิร์นที่กำหนด: N, NE, E, SE, S, SW, W, NW; เช่นเดียวกับขึ้นลงและขึ้น / ลง + หนึ่งในทิศทางเข็มทิศ Queen - สามารถไปในทิศทางเดียวกับ King แต่เท่าที่เธอต้องการในทิศทางนั้น Rook - สามารถเคลื่อนที่ได้ 6 ทิศทาง: N, E, S, W, ขึ้นและลง บิชอป - มีทิศทางการท่องเที่ยว …

12
บีบอัดสะเก็ดระเบิดของสมอง
ความท้าทายนี้ถูกโพสต์เป็นส่วนหนึ่งของความท้าทาย LotMในเดือนเมษายน 2018เช่นเดียวกับวันเกิดปีที่ 2 ของ Brain-flak ฉันกำลังคิดเกี่ยวกับวิธีที่มีประสิทธิภาพมากที่สุดในการเข้ารหัสโปรแกรมสะกิดสมอง สิ่งที่ชัดเจนที่ต้องทำเนื่องจากมีอักขระที่ใช้ได้เพียง 8 ตัวเท่านั้นคือการจับคู่อักขระแต่ละตัวกับลำดับ 3 บิต นี้มีประสิทธิภาพมาก แต่ก็ยังซ้ำซ้อนมาก มีคุณสมบัติบางอย่างของรหัสสมองสะเก็ดระเบิดที่เราสามารถใช้ประโยชน์จากการเข้ารหัสให้สั้นลงได้ nilads ซึ่งถูกแสดงด้วยวงเล็บ 2 ตัวที่จับคู่กันทำหน้าที่เป็นหน่วยเดียวของข้อมูลมากกว่า 2 ถ้าเราแทนที่แต่ละวงเล็บด้วยอักขระไบต์เดียวสิ่งนี้จะทำให้การเข้ารหัสมีขนาดเล็กลงโดยไม่สูญเสียข้อมูลใด ๆ อันนี้ไม่ชัดเจน แต่ไบต์การปิดของ monads นั้นซ้ำซ้อนเช่นกัน คิดว่าคุณสามารถเดาได้ว่า'?'ตัวละครนั้นเป็นตัวแทนอะไรในตัวอย่างต่อไปนี้ {(({}?<>?<>? หากเราสมมติว่าการป้อนข้อมูลนั้นเป็นรหัสสมองที่ถูกต้องแสดงว่ามีเพียงตัวเลือกเดียวสำหรับเครื่องหมายคำถามแต่ละข้อ ซึ่งหมายความว่าเราสามารถใช้ตัวอักษรmonad อย่างใกล้ชิดเพื่อแทนวงเล็บปิดทุกอัน สิ่งนี้มีประโยชน์เพิ่มเติมในการทำให้ชุดอักขระมีขนาดเล็กซึ่งจะช่วยได้อย่างมากหากเราต้องการใช้การเข้ารหัส huffman เนื่องจากตัวละครmonad closeน่าจะเป็นตัวละครที่พบได้บ่อยที่สุดโดยมีระยะขอบที่กว้างจึงอาจเป็นเพียงบิตเดียวซึ่งมีประสิทธิภาพอย่างมหาศาล เทคนิคสองอย่างนี้จะให้เราบีบอัดโค้ดที่ทำให้สมองสะบัดผ่านอัลกอริทึมต่อไปนี้: เปลี่ยนทุกๆวงเล็บปิดของ monad |กับ หรือกล่าวอีกนัยหนึ่งให้แทนที่วงเล็บปิดทุกอันที่ไม่ได้นำหน้าด้วยการเปิดการจับคู่ด้วยแถบ ดังนั้น... (({})<(()()())>{}) จะกลายเป็น (({}|<(()()()||{}| แทนที่ nilad ทุกตัวด้วยวงเล็บปิด ดังนั้นการจับคู่วงเล็บที่ไม่มีสิ่งใดในนั้นจึงใช้การจับคู่ดังต่อไปนี้: () --> …

30
ขั้นตอนดั้งเดิม
มันเป็นปัญหาที่พบบ่อยในการนำทางในเมทริกซ์ 2D เราเคยเห็นหลายครั้งและจะเห็นอีกครั้ง ดังนั้นช่วยเราในอนาคตและพัฒนาโซลูชันที่สั้นที่สุดเพื่อสร้างแปดขั้นตอนที่เป็นไปได้ทั้งหมดในเมทริกซ์ 2D ท้าทาย รหัสของคุณจะต้องส่งออก 8 คู่ต่อไปนี้ -1,0,1 ในลำดับใด ๆ : (0,1) (0,-1) (1,0) (-1,0) (1,1) (1,-1) (-1,1) (-1,-1) กฎระเบียบ ไม่มีอินพุต คำสั่งเอาท์พุทไม่เกี่ยวข้อง ผลผลิตมีความยืดหยุ่น คู่ของตัวเลขต้องแยกความแตกต่าง นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ

30
ขึ้นไปบิต!
รับจำนวนเต็ม N ทำตามขั้นตอนต่อไปนี้: (ใช้ 9 เป็นตัวอย่าง) รับอินพุต N. ( 9) แปลง N จาก base10 เป็น base2 ( 1001) เพิ่มขึ้นทุก bit โดย 1. ( 2112) ปฏิบัติต่อผลลัพธ์ในฐานะ base3 และแปลงกลับเป็น base10 ( 68) ส่งคืน / ผลลัพธ์ผลลัพธ์ อินพุต อาจได้รับในรูปแบบตัวเลขที่สมเหตุสมผล คุณจะต้องจัดการกับกรณีที่ N> 0 เอาท์พุต stdoutทั้งสองกลับมาเป็นตัวเลขหรือสตริงหรือพิมพ์ กฎระเบียบ นี่คือโค้ดกอล์ฟซึ่งเป็นรหัสที่สั้นที่สุดในหน่วยไบต์ ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม กรณีทดสอบ 1 -> 2 2 -> 7 …

19
การสะท้อนสตริงอย่างง่าย
เริ่มต้นด้วยการกำหนดภาพสะท้อนของตัวละครในสตริง: กำหนดสตริงที่มีตัวอักษรตัวอักษรตัวพิมพ์เล็กแตกต่างกันโดยไม่มีช่องว่างเช่นabcdefgกำหนดการสะท้อนของตัวอักษรในสตริงcเป็นการย้าย (โดยไม่เปลี่ยนลำดับของตัวอักษรอื่น ๆ ) ไปยังตำแหน่งใหม่ในสตริงเช่นจำนวนตัวอักษรดั้งเดิม ทางด้านขวาของมันคือจำนวนตัวอักษรทางด้านซ้ายของมัน ดังนั้นภาพสะท้อนของตัวอักษรcในจะเป็นabcdefg คำอธิบาย: มี 4 ตัวอักษรไปทางขวาของและตอนนี้มี 4 ตัวอักษรที่ด้านซ้ายของabdecfgcc ตัวอย่างเพิ่มเติม: การสะท้อนอักขระeในmyfriendรูปแบบสตริงmyefrind สะท้อนให้เห็นถึงตัวละครaในจะเป็นสตริงaxyzxyza สะท้อนให้เห็นถึงตัวละครbในจะเป็นสตริงabcabc สะท้อนให้เห็นถึงตัวละครdในจะเป็นสตริงdd สะท้อนให้เห็นถึงตัวละครeในจะเป็นสตริงeffe สำหรับข้อมูลเพิ่มเติมหรือลองใช้กรณีทดสอบนี่เป็นโปรแกรม (ค่อนข้างยาว) ที่ฉันเขียนใน C ++ ความท้าทาย กำหนดสตริงที่มีตัวอักษรตัวพิมพ์เล็กที่แตกต่างกันให้ผ่านแต่ละตัวอักษรและ "สะท้อน" ในสตริง การชี้แจง: ตัวอักษรในสตริงมาจากa-zไม่มีช่องว่างตัวอักษรไม่ซ้ำกันและสตริงมีความยาวอย่างน้อย 1 ตัวอักษรและความยาวสูงสุด 26 ตัวอักษร ตัวอย่าง อินพุต: dcba. ผลลัพธ์: dcba. เหตุผล: อันดับแรกให้สะท้อนความaเป็นตัวอักษรในสตริงที่มาเร็วที่สุดในตัวอักษร adcbคุณจะได้รับ จากนั้นสะท้อนให้เห็นถึงที่มาต่อไปในตัวอักษรที่จะได้รับb badcจากนั้นสะท้อนให้เห็นถึงcการได้รับcbadและจากนั้นจะได้รับddcba อินพุต: myface. ผลลัพธ์: fyecma. คำแนะนำ: …
26 code-golf  string 

3
Doodle ของ Google ในการเข้ารหัสเด็ก: โปรแกรมที่สั้นที่สุดที่แก้ปัญหาทุกระดับ
Doodle Google ในวันนี้เป็นเรื่องเกี่ยวกับการฉลอง 50 ปีของการเข้ารหัสสำหรับเด็ก : เป้าหมายคือโปรแกรมเส้นทางของกระต่ายตัวน้อยเพื่อที่จะได้กินแครอททั้งหมด บล็อกมี 4 ประเภท (ดูรูปภาพด้านล่าง): จากซ้ายไปขวา: O("...", k)= ชิ้นสีส้มเหล่านี้เป็นforลูปที่รัน k "..."ครั้งโปรแกรม G = ชิ้นส่วนสีเขียว: ไปข้างหน้าหนึ่งก้าวถ้าทำได้ไม่อย่างนั้นไม่ทำอะไรเลย Bl = ชิ้นสีฟ้า: เลี้ยวขวาและอยู่บนบล็อกเดียวกัน Br = ชิ้นสีน้ำเงิน: เลี้ยวซ้ายและอยู่บนบล็อกเดียวกัน รหัสด้านบนสามารถเขียนเป็น O(O(G G Br, 4) Bl Bl, 23) แต่ละบล็อก ( G, Bl, Br, O(...,k)) นับเป็น 1 หน่วยดังนั้นโปรแกรมนี้เป็นโปรแกรมที่มีความยาว 7 หมายเหตุกว่ามูลค่าของkรวมอยู่ภายใน 1 Oหน่วย …

6
เครื่องตรวจจับรังสี!
โปรแกรมที่ชุบรังสีเป็นโปรแกรมที่หากลบอักขระใด ๆ ของรหัสโปรแกรมจะยังคงทำงานเหมือนเดิม สำหรับคำถามนี้เราจะเขียนโปรแกรมที่ตรวจพบเมื่อถูกฉายรังสี เขียนโปรแกรมหรือฟังก์ชั่นที่เมื่อลบไบต์เดียวใด ๆออกโปรแกรมที่ได้จะออกไบท์นั้นและไบท์นั้นเท่านั้น ( คุณอาจส่งออกไบต์หลายครั้งตราบใดที่คุณไม่ส่งออกไบต์อื่น ๆ ) กฎ: โปรแกรมจะต้องมีอย่างน้อย 2 ไบต์ที่แตกต่างกัน (ไม่มีวิธีแก้ปัญหาเพียง 0s;) ไม่สำคัญว่าโปรแกรมต้นฉบับจะทำอะไร ไม่อ่านซอร์สโค้ดของคุณเอง รหัสจะได้คะแนนตามจำนวนไบต์ที่แตกต่างกันโดยที่จำนวนสูงสุดชนะ ตัวอย่างเช่นabc= 3 คะแนน, ababba= 2 คะแนนabcชนะ Tie-breaker คือจำนวนไบต์ที่น้อยกว่าตามด้วยเวลาการส่งก่อนหน้า โชคดี!

1
ร่าเริงร่าเริง
พื้นหลัง สหรัฐอเมริกามีความรักที่ไม่เหมือนใครของ gerrymandering - การจัดการโดยเจตนาของเขตการเลือกตั้งเพื่อทำนายผลการลงคะแนนบางอย่าง เมื่อไม่นานมานี้มีคดีฟ้องร้องดำเนินคดีต่อศาลฎีกา Gerrymandering โดยเฉพาะอย่างยิ่งเมื่อเกี่ยวข้องกับการแข่งขันถูกปกครองอย่างผิดกฎหมายและส่งผลให้มีความต้องการที่จะวาดเส้นเขต ให้แผนที่เป็นรูปสี่เหลี่ยมผืนผ้าของเทศบาล (อาร์เรย์ 2d) คุณจะวาดเส้นเขตเพื่อช่วยให้พรรคของคุณได้รับการแสดงมากที่สุด นั่นคือคุณจะร่าเริง ทุกเขตเทศบาลมีสองฝ่าย0และ1. แผนที่จะประกอบด้วยสี่เหลี่ยมที่มีอย่างใดอย่างหนึ่ง0หรือ1อยู่บนนั้น นี่คือแผนที่ตัวอย่าง: ท้าทาย คุณจะจัดกลุ่มแผนที่เป็นอำเภอเพื่อให้1ปาร์ตี้ได้รับจำนวนอำเภออย่างน้อยตามที่กำหนดโดยอินพุต อินพุต ข้อมูลที่ป้อนจะประกอบด้วยแผนที่จำนวนอำเภอที่จะจั่วและจำนวนเขตขั้นต่ำที่1พรรคต้องชนะ (คะแนนขั้นต่ำ) เอาท์พุต ผลลัพธ์จะเป็นแผนที่ของอำเภอ แต่ละเขตจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ที่ไม่ซ้ำกัน ใช่นี่หมายความว่าจะไม่เกิน 26 เขต หากไม่มีผลลัพธ์ที่เป็นไปได้เมื่อฝ่ายที่ป้อนเข้าชนะหัวเมืองมากพอ: พิมพ์“ เราพยายาม ... ” ข้อผิดพลาดร้ายแรงเนื่องจากพรรคได้รับบาดเจ็บอย่างไม่สามารถแก้ไขได้โดยผลการเลือกตั้ง หรือทั้งคู่ กฎ (สำคัญมากเช่นกัน) ทุกอำเภอจะต้องต่อเนื่องกัน เขตอาจไม่มีหัวเมืองอื่นในนั้น แต่ละอำเภอจะต้องมีอย่างน้อยสี่โหนดในนั้น อินพุตจะสอดคล้องกับกฎซึ่งหมายความว่าจะมีnumber_of_districts * 4โหนดอย่างน้อยในแผนที่ คะแนนของแต่ละฝ่ายคือจำนวนเขตที่มีส่วนใหญ่ หากเขตมีจำนวน0s และ1s เท่ากันก็จะไม่ได้รับประโยชน์ใด ๆ กฎไม่โกงปกติ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ …

24
สิทธิ์ของไฟล์
สิทธิ์ของไฟล์ รหัสกอล์ฟ ดัดแปลงมาจาก UIL - คำถามการตอบสนองการเขียนโปรแกรมวิทยาศาสตร์คอมพิวเตอร์ฟรี "คาร์ล่า" สำหรับอำเภอ 2018 บทนำ ในระบบปฏิบัติการที่คล้าย UNIX แต่ละไฟล์ไดเรกทอรีหรือลิงค์คือ "ผู้ใช้" ซึ่งเป็น "ผู้ใช้" ซึ่งเป็นสมาชิกของ "กลุ่ม" และมี "สิทธิ์" บางอย่างที่แสดงโดยสตริงสิบอักขระเช่น " drwxrwxrwx" อักขระตัวแรกคือ 'd', '-' หรือ 'l' (ไดเรกทอรีไฟล์หรือลิงค์) ตามด้วยค่า "rwx" สามชุดซึ่งระบุสิทธิ์การ "อ่านเขียนดำเนินการ" ชุดแรกคือสิทธิ์ของผู้ใช้ตรงกลางกำหนดสิทธิ์ของกลุ่มและสิทธิ์ของทุกคนที่สามสำหรับวัตถุนั้น การอนุญาตที่ถูกปฏิเสธสำหรับสิทธิ์ใด ๆ เหล่านี้จะแสดงด้วย '-' แทนที่ 'r', 'w' หรือ 'x' ตัวอย่างเช่นสตริงสิทธิ์ไดเรกทอรีตัวอย่างจะเป็น "drwxr - r--" ซึ่งระบุสิทธิ์ไดเรกทอรีเต็มรูปแบบสำหรับผู้ใช้ แต่สิทธิ์ "อ่านอย่างเดียว" …
26 code-golf 

22
จำนวนเต็มเจือจาง
จำนวนเต็มบวกสามารถเจือจางโดยการแทรก0ระหว่างสองบิตในการขยายฐานสอง ซึ่งหมายความว่าnหมายเลข -bit มีการn-1เจือจางซึ่งไม่จำเป็นต้องแตกต่างกันทั้งหมด ตัวอย่างเช่นสำหรับ12(หรือ1100ในไบนารี) การเจือจางคือ 11000 = 24 ^ 11000 = 24 ^ 10100 = 20 ^ ในการท้าทายนี้เราจะทำการหาผลรวมของการลดทอนทั้งหมดโดยไม่รวมจำนวนเดิม สำหรับ12การผลรวมของ24, 24, 20ผลในการ68ดังนั้นควรจะมีการส่งออกสำหรับ6812 ท้าทาย รับจำนวนเต็มบวกn > 1เป็นอินพุตเอาต์พุต / ส่งคืนผลรวมเจือจางตามที่อธิบายไว้ข้างต้น ตัวอย่าง in out --- --- 2 4 3 5 7 24 12 68 333 5128 512 9216 กฎระเบียบ อินพุตและเอาต์พุตสามารถสันนิษฐานว่าเหมาะสมกับชนิดจำนวนเต็มดั้งเดิมของภาษาของคุณ อินพุตและเอาต์พุตจะได้รับในรูปแบบที่สะดวกใด ๆ ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น …

12
ระบุผู้ชนะ Tic-Tac-Toe (รอบฐาน)
มาเล่นโค้ดกอล์ฟกัน! ความท้าทายคือการหาผู้ชนะของเกม Tic-Tac-Toe สิ่งนี้ทำมาแล้วหลายครั้งโดยให้บอร์ดที่มีผู้ชนะเพียงคนเดียว แต่นี่คือการบิด: เซลล์มีหมายเลขดังนี้: 1|2|3 -+-+- 4|5|6 -+-+- 7|8|9 คุณจะได้รับการเคลื่อนไหว 9 อย่างดังนี้: {3, 5, 6, 7, 9, 8, 1, 2, 3} นี่คือการแยกวิเคราะห์ดังนี้: ผู้เล่น 1 ทำเครื่องหมายเซลล์ 3 ผู้เล่น 2 ทำเครื่องหมายเซลล์ 5 ผู้เล่น 1 ทำเครื่องหมายเซลล์ 6 ผู้เล่น 2 ทำเครื่องหมายเซลล์ 7 ผู้เล่น 1 คนทำเครื่องหมายเซลล์ 9 ผู้เล่น 1 ได้รับรางวัล หมายเหตุ: เกมไม่หยุดหลังจากผู้เล่นคนใดคนหนึ่งชนะอาจเกิดขึ้นได้ว่าผู้เล่นที่แพ้จะได้สามแถวติดต่อกันหลังจากผู้เล่นที่ชนะ แต่จะนับเฉพาะการชนะครั้งแรกเท่านั้น …

30
ใช้ Lazy Drop Sort
ความท้าทายนี้ได้อธิบายเกี่ยวกับ dropsort แล้ว แต่ฉันขี้เกียจครับและผมจะต้องอาร์เรย์ของฉันจะเป็นบิตเรียงขึ้นกว่า แต่ก่อนก็ไม่ได้จะต้องมีการจัดเรียงทุกทาง ใน Drop Sort เราปล่อยทุกองค์ประกอบน้อยกว่าองค์ประกอบใด ๆก่อนหน้านี้ ใน Lazy วางเรียงเราวางทุกองค์ประกอบน้อยกว่าหนึ่งอย่างเคร่งครัดก่อนหน้ามัน นี่คือตัวอย่าง พิจารณาอาร์เรย์ต่อไปนี้: 8 6 9 9 7 2 3 8 1 3 ลองทำเครื่องหมายทุกองค์ประกอบที่น้อยกว่าหนึ่งก่อน 8 6 9 9 7 2 3 8 1 3 ^ ^ ^ ^ แจ้งให้ทราบว่าไม่ถูกทำเครื่องหมายหรือที่ผ่านมา3 8พวกเขาทั้งหมดมีขนาดใหญ่กว่าองค์ประกอบเดียวทางด้านซ้ายของพวกเขา การทำให้อัลกอริธึมเสร็จสมบูรณ์ลบองค์ประกอบที่ทำเครื่องหมายไว้เราได้ 8 9 9 3 8 3 นั่นโดยทั่วไปแล้วดูเรียงมากขึ้น …

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