กลับไปหน้าบทความ

อ่าน 5 นาที

ลำดับที่จัดเรียงแบบ K

ใน วิทยาการคอมพิวเตอร์ ลำดับ ที่เกือบเรียงลำดับแล้ว หรือที่รู้จักกันในชื่อ ลำดับที่เรียงลำดับอย่างคร่าวๆ หรือ ลำดับที่เรียงลำดับ แบบ χ คือลำดับที่เกือบจะเรียงลำดับแล้ว คำว่า...

ลำดับที่จัดเรียงแบบ K

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

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

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

คำนิยาม

กำหนดให้จำนวนบวก n ลำดับ หนึ่ง เรียกว่าเรียงลำดับแบบ nถ้าสำหรับแต่ละ n และสำหรับแต่ละ n นั่นคือ ลำดับจะต้องเรียงลำดับเฉพาะคู่ขององค์ประกอบที่มีระยะห่างอย่างน้อยn เท่านั้น

รัศมีของลำดับที่ระบุด้วย[ 1 ]หรือ[ 2 ]คือค่าที่เล็กที่สุดที่ทำให้ลำดับนั้นเรียงลำดับ รัศมีเป็นการวัดการเรียงลำดับล่วงหน้า

กล่าวได้ว่าลำดับเกือบเรียงแล้วหรือเรียงแล้วโดยประมาณหากรัศมีของลำดับนั้นเล็กเมื่อเทียบกับความยาวของลำดับ

คำจำกัดความที่เทียบเท่ากัน

ลำดับจะเรียงลำดับตาม -sorted ก็ต่อเมื่อช่วงแต่ละช่วงที่มีความยาว n นั้นเรียงลำดับตาม -sorted แล้ว

คุณสมบัติ

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

ความสัมพันธ์กับลำดับที่จัดเรียงแล้ว

กำหนดให้ลำดับ a เป็นลำดับที่เรียงลำดับแล้วและการเรียงสับเปลี่ยนที่เรียงลำดับแล้วของลำดับ a นั้นจะมีค่าไม่เกิน

อัลกอริทึม

การตัดสินว่าลำดับนั้นเป็นลำดับk หรือไม่

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

การคำนวณรัศมีของลำดับ

การคำนวณรัศมีของลำดับสามารถทำได้ในเวลาและพื้นที่เชิงเส้น ซึ่งเป็นผลมาจากข้อเท็จจริงที่ว่าสามารถนิยามได้เป็น.

การลดรัศมีของลำดับลงครึ่งหนึ่ง

เมื่อกำหนดลำดับที่เรียงลำดับตาม -แล้วจะสามารถคำนวณการเรียงสับเปลี่ยนที่เรียงลำดับตาม - ของ ลำดับนั้นได้ ในเวลาเชิงเส้นและพื้นที่คงที่

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

ลำดับดังกล่าวสามารถได้มาจากการแบ่งกลุ่มขององค์ประกอบที่ตำแหน่งจากนั้นแบ่งกลุ่มขององค์ประกอบที่ตำแหน่งและจากนั้นแบ่งกลุ่มขององค์ประกอบที่ตำแหน่ง อีกครั้ง สำหรับแต่ละจำนวนเพื่อให้ได้ลำดับที่กำหนดไว้

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

การรวมลำดับ kสองลำดับเข้า ด้วยกัน

การรวมลำดับสองลำดับเข้า ด้วย กันสามารถทำได้ในเวลาเชิงเส้นและพื้นที่คงที่

ขั้นแรก ใช้ขั้นตอนวิธีที่กล่าวมาข้างต้น แปลงลำดับทั้งสองให้เป็นลำดับที่เรียงลำดับตาม - แล้ว

เราจะสร้างลำดับเอาต์พุตแบบวนซ้ำโดยการลบเนื้อหาออกจากทั้งสองส่วนแล้วเพิ่มเข้าไปใหม่

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

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

การเรียงลำดับลำดับk

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

การเรียงลำดับ kของลำดับ

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

แอปพลิเคชัน

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

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=K-sorted_sequence&oldid=1334824311 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ลำดับที่จัดเรียงแบบ K

ใน วิทยาการคอมพิวเตอร์ ลำดับ ที่เกือบเรียงลำดับแล้ว หรือที่รู้จักกันในชื่อ ลำดับที่เรียงลำดับอย่างคร่าวๆ หรือ ลำดับที่เรียงลำดับ แบบ χ คือลำดับที่เกือบจะเรียงลำดับแล้ว คำว่า...

คำนิยาม

กำหนดให้จำนวนบวก n ลำดับ หนึ่ง เรียกว่า เรียงลำดับแบบ n ถ้าสำหรับแต่ละ n และสำหรับแต่ละ n นั่นคือ ลำดับจะต้องเรียงลำดับเฉพาะคู่ขององค์ประกอบที่มีระยะห่างอย่างน้อยn เท่านั้น เค {\displaystyle k} [ เอ 1 , … , เอ n ] {\displaystyle [a_{1},\dots ,a_{n}]} เค...

คำจำกัดความที่เทียบเท่ากัน

ลำดับจะเรียงลำดับตาม -sorted ก็ต่อเมื่อช่วงแต่ละช่วงที่มีความยาว n นั้นเรียงลำดับตาม -sorted แล้ว [ เอ 1 , … , เอ n ] {\displaystyle [a_{1},\dots ,a_{n}]} เค {\displaystyle k} 2 เค + 2 {\displaystyle 2k+2} [ เอ ฉัน , เอ ฉัน + 1 , … , เอ ฉัน + 2 เค + 2 ]...

คุณสมบัติ

ลำดับทั้งหมดที่มีความยาวจะถูกเรียงลำดับแบบ นั่นคือลำดับจะถูกเรียงลำดับแบบ ก็ต่อเมื่อมันถูกเรียงลำดับแบบ เท่านั้นลำดับที่ถูกเรียงลำดับแบบ จะถูกเรียงลำดับแบบ โดยอัตโนมัติแต่ไม่จำเป็นต้องถูกเรียงลำดับแบบ ด้วย n {\displaystyle n} ( n − 1 ) {\displaystyle (n-1)} 0...