ในการเขียนโปรแกรมคอมพิวเตอร์นั้น โร้ป (อังกฤษ: Rope; แปลเป็นภาษาไทยว่า เชือก) จัดเป็นโครงสร้างข้อมูลชนิดหนึ่งที่ใช้ในการจัดเก็บข้อมูลประเภท สตริง (string) และมีประสิทธิภาพสูงในการใช้งานแทนที่สตริง แต่เป็นสตริงที่มีขนาดที่ใหญ่กว่าสตริงทั่วไปในบางครั้งจึงเรียกว่า Heavyweight String โดยจะใช้ต้นไม้แบบทวิภาคในการเก็บข้อมูลที่เป็นแถวลำดับของสายข้อความ โดยหลักการของโร้ปนั้นได้ถูกนำเสนอไว้ในบทความทางวิชาการที่ชื่อว่า "Ropes: an Alternative to Strings".
โดยโร้ปนั้นได้ให้ประสิทธิภาพการทำงานที่ดีกว่าทั้ง สตริง และ สตริงบัฟเฟอร์ สำหรับการใช้งานในการแก้ไขสตริงทั่วไป เช่น การเชิ่อมสตริง, ลบสตริง, แทรกสตริง เป็นต้น อีกทั้งโร้ปจะไม่เปลี่ยนรูป ดังนั้นจึงเหมาะสำหรับใช้ในการเขียนโปรแกรมที่มีการทำงานแบบมัลติเทร็ด
การเปรียบเทียบโร้ปกับสตริงแบบอาเรย์ปกติ
ในตารางต่อไปนี้จะเป็นการแสดงให้เห็นและเปรียบเทียบถึงลักษณะการทำงานของอัลกอลิธึมของสตริงและโร้ป แต่การที่สตริงแบบปกติมีขนาดโอเวอร์เฮดที่เล็กกว่าโร้ป ดังนั้นการทำงานบางคำสั่งโดยที่สตริงและโร้ปมีขนาดเล็กๆ นั้นสตริงอาจทำได้เร็วการโร้ป แต่โดยทั่วไปแล้วถ้าสายข้อความมีขนาดใหญ่โร้ปมักจะมีการทำงานที่เร็วกว่าสตริง
คำสั่ง | ประสิทธิภาพของโร้ป | ประสิทธิภาพของสตริง |
---|---|---|
concatenation | O(1) | O(n) |
substring | O(log n) | O(n) |
indexing | O(log n) | O(1) |
iteration | O(n) | O(n) |
กราฟแสดงประสิทธิภาพของโร้ป
กราฟแสดงเวลาที่ใช้ในการต่อสายอักขระ
กราฟแสดงเวลาที่ใช้ในการสร้างสายอักขระ
กราฟแสดงเวลาที่ใช้ในการท่องสายอักขระ
อ้างอิง
- Boehm, Hans-J (December 1995). (PDF). Software—Practice & Experience. New York, NY, USA: John Wiley & Sons, Inc. 25 (12): 1315–1330. doi:10.1002/spe.4380251203. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2007-02-25. สืบค้นเมื่อ 2011-02-21.
{{}}
: ไม่รู้จักพารามิเตอร์|coauthors=
ถูกละเว้น แนะนำ (|author=
) ((help))
แหล่งข้อมูลอื่น
- SGI's implementation of ropes for C++
- libstdc++ support for ropes
- Ropes for Java
- Ropes 2011-07-27 ที่ เวย์แบ็กแมชชีน for
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
inkarekhiynopraekrmkhxmphiwetxrnn orp xngkvs Rope aeplepnphasaithywa echuxk cdepnokhrngsrangkhxmulchnidhnungthiichinkarcdekbkhxmulpraephth string string aelamiprasiththiphaphsunginkarichnganaethnthistring aetepnstringthimikhnadthiihykwastringthwipinbangkhrngcungeriykwa Heavyweight String odycaichtnimaebbthwiphakhinkarekbkhxmulthiepnaethwladbkhxngsaykhxkhwam odyhlkkarkhxngorpnnidthuknaesnxiwinbthkhwamthangwichakarthichuxwa Ropes an Alternative to Strings twxyangkarekbkhawa The quick brown fox inorptwxyangkartha abcdef ihsmdul odyorpnnidihprasiththiphaphkarthanganthidikwathng string aela stringbfefxr sahrbkarichnganinkaraekikhstringthwip echn karechixmstring lbstring aethrkstring epntn xikthngorpcaimepliynrup dngnncungehmaasahrbichinkarekhiynopraekrmthimikarthanganaebbmltiethrdkarepriybethiyborpkbstringaebbxaerypktiintarangtxipnicaepnkaraesdngihehnaelaepriybethiybthunglksnakarthangankhxngxlkxlithumkhxngstringaelaorp aetkarthistringaebbpktimikhnadoxewxrehdthielkkwaorp dngnnkarthanganbangkhasngodythistringaelaorpmikhnadelk nnstringxacthaiderwkarorp aetodythwipaelwthasaykhxkhwammikhnadihyorpmkcamikarthanganthierwkwastring khasng prasiththiphaphkhxngorp prasiththiphaphkhxngstringconcatenation O 1 O n substring O log n O n indexing O log n O 1 iteration O n O n krafaesdngprasiththiphaphkhxngorpkrafaesdngewlathiichinkartxsayxkkhra krafaesdngewlathiichinkarsrangsayxkkhra krafaesdngewlathiichinkarthxngsayxkkhraxangxingBoehm Hans J December 1995 PDF Software Practice amp Experience New York NY USA John Wiley amp Sons Inc 25 12 1315 1330 doi 10 1002 spe 4380251203 khlngkhxmulekaekbcakaehlngedim PDF emux 2007 02 25 subkhnemux 2011 02 21 a href wiki E0 B9 81 E0 B8 A1 E0 B9 88 E0 B9 81 E0 B8 9A E0 B8 9A Cite journal title aemaebb Cite journal cite journal a imruckpharamietxr coauthors thuklaewn aenana author help aehlngkhxmulxunSGI s implementation of ropes for C libstdc support for ropes Ropes for Java Ropes 2011 07 27 thi ewyaebkaemchchin for