นอกจากนี้ยังมีเวลาเชิงเส้นและอัลกอริทึมพื้นที่คงที่ตามการแบ่งซึ่งอาจมีความยืดหยุ่นมากขึ้นหากคุณพยายามที่จะใช้สิ่งนี้กับตัวแปรของปัญหาที่วิธีการทางคณิตศาสตร์ไม่ทำงาน สิ่งนี้ต้องการการกลายพันธุ์อาเรย์พื้นฐานและมีปัจจัยคงที่ที่แย่กว่าวิธีการทางคณิตศาสตร์ โดยเฉพาะอย่างยิ่งฉันเชื่อว่าค่าใช้จ่ายในแง่ของจำนวนทั้งหมดของค่าและจำนวนของการทำซ้ำdคือO ( n log d )และO ( d )ตามลำดับแม้ว่าการพิสูจน์ว่าจะใช้เวลามากกว่าที่ฉันมีอยู่ในขณะนี้ .ndO(nlogd)O(d)
ขั้นตอนวิธี
เริ่มต้นด้วยรายการคู่โดยที่คู่แรกคือช่วงที่อยู่เหนือทั้งอาร์เรย์หรือหากทำดัชนีไว้[(1,n)]
ทำซ้ำขั้นตอนต่อไปนี้จนกว่ารายการจะว่างเปล่า:
- ใช้และลบคู่ใด ๆออกจากรายการ(i,j)
- ค้นหาขั้นต่ำและสูงสุด, และสูงสุด , ของ subarray ที่แสดงminmax
- หากระบบย่อยจะประกอบด้วยองค์ประกอบที่เท่ากันเท่านั้น ให้ผลองค์ประกอบยกเว้นหนึ่งและข้ามขั้นตอนที่ 4 ถึง 6min=max
- หากระบบย่อยจะไม่มีรายการซ้ำ ข้ามขั้นตอนที่ 5 และ 6max−min=j−i
- แบ่งพาร์ติชันย่อยรอบเช่นนั้นองค์ประกอบถึงบางดัชนีkมีขนาดเล็กกว่าตัวคั่นและองค์ประกอบด้านบนดัชนีนั้นไม่ได้min+max2k
- เพิ่มและ( k + 1 , j )ลงในรายการ(i,k)(k+1,j)
การวิเคราะห์ความซับซ้อนของเวลา
ขั้นตอนที่ 1 ถึง 6 ใช้เวลาเนื่องจากการค้นหาขั้นต่ำและสูงสุดและการแบ่งพาร์ติชันสามารถทำได้ในเวลาเชิงเส้นO(j−i)
ทุกคู่ในรายการเป็นคู่แรก( 1 , n )หรือลูกของบางคู่ที่ subarray ที่สอดคล้องกันมีองค์ประกอบที่ซ้ำกัน มีมากที่สุดd ⌈ log 2 n + 1 parentsผู้ปกครองดังกล่าวเนื่องจากการสำรวจเส้นทางแต่ละช่วงแบ่งครึ่งซึ่งสามารถทำซ้ำได้ดังนั้นจึงมีจำนวนสูงสุด2 d ⌈ log 2 n + 1 ⌉รวมเมื่อรวมคู่กับ subarrays ที่ไม่มี ที่ซ้ำกัน ในแต่ละครั้งขนาดของรายการไม่เกิน2 d(i,j)(1,n)d⌈log2n+1⌉2d⌈log2n+1⌉2d.
พิจารณางานเพื่อค้นหาสิ่งใดสิ่งหนึ่งที่ซ้ำกัน นี้ประกอบด้วยลำดับของคู่มากกว่าช่วงชี้แจงลดลงดังนั้นการทำงานทั้งหมดคือผลรวมของลำดับเรขาคณิตหรือ ) นี้ก่อให้เกิดข้อพิสูจน์ที่ชัดเจนว่าการทำงานรวมสำหรับdซ้ำกันจะต้องเป็นO ( n d )ซึ่งเป็นเส้นตรงในnO(n)dO(nd)n
หากต้องการค้นหาขอบเขตที่เข้มงวดให้พิจารณาสถานการณ์กรณีที่เลวร้ายที่สุดของการแพร่กระจายรายการที่มากที่สุด การค้นหาต้องใช้สองขั้นตอนโดยที่การสำรวจเต็มรูปแบบในแต่ละครั้งในส่วนที่เล็กกว่าที่ก้าวหน้าและอีกส่วนหนึ่งซึ่งส่วนที่เล็กกว่าดังนั้นมีการสำรวจเฉพาะบางส่วนของอาเรย์ โดยในระยะแรกจะไม่สามารถเข้าสู่ระบบdลึกจึงมีค่าใช้จ่ายO(nบันทึกd)และระยะที่สองมีค่าใช้จ่ายO(n)เพราะเป็นพื้นที่รวมสืบค้นเป็นอีกครั้งชี้แจงลดลงndlogdO(nlogd)O(n)