System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 无码人妻AⅤ一区二区三区水密桃,人妻丰满熟妇av无码区不卡,精品亚洲成A人无码成A在线观看
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種區間數據集合中查找與給定區間數據相交的區間的方法及裝置制造方法及圖紙

    技術編號:41820767 閱讀:23 留言:0更新日期:2024-06-24 20:35
    本申請提供了一種區間數據集合中查找與給定區間數據相交的區間的方法及裝置,所述方法包括:利用所述區間鏈表的數據節點存儲區間數據;當在區間數據集合中插入區間數據時,執行所述區間數據集合插入數據的方法;當在區間數據集合中刪除區間數據時,執行所述區間數據集合刪除數據的方法;當在區間數據集合中查找與給定區間數據相交的區間數據時,執行所述區間數據集合中查找區間數據的方法。本申請的優勢在于:本申請采用的區間鏈表基于跳躍表實現,并對跳躍表進行了增強,通過維護額外信息,在運行時間復雜度不變的前提下,維護了區間數據,具有實現簡單,查找速度快的優點。

    【技術實現步驟摘要】

    本申請屬于計算機數據結構與算法領域,具體涉及一種區間數據集合中查找與給定區間數據相交的區間的方法及裝置


    技術介紹

    1、區間數據可以很方便地表示占用一段連續時間片段的事件。我們通常將相關的多個區間數據放在一起進行管理,成為區間數據集合。在很多場景中,我們需要查詢在給定時間段內發生了哪些事件,或者判斷是否存在區間相交的事件的情況,下面是一些與區間數據集合相關的常見的應用場景:

    2、日程安排管理:在日程管理系統中,可以使用區間來表示用戶的日程安排。每個日程可以表示為一個時間區間,如何快速查詢某個時間點是否與已有的日程發生重疊,以避免時間沖突。

    3、碰撞檢測:在計算機圖形學和游戲開發中,碰撞檢測是一個重要的問題。將物體的邊界框(boundingbox)表示為區間,如何高效地找出與某個物體相交的所有其他物體,從而進行碰撞檢測。

    4、時間沖突檢測:在會議管理系統或者航班調度系統中,每個會議或航班可以表示為一個時間區間,如何檢測是否存在時間上的重疊,以避免會議或航班的沖突。當貨船在海上行駛時,需要提前向目的港口申請進港卸貨時間,港口同時會有多艘貨船進行卸貨,為貨船安排未來某段時間在某個卸貨口進行卸貨需要梳理未來一段時間的港口卸貨時間安排,如何能快捷準確的判斷貨船申請的時間段是否能夠安排合適的卸貨口是港口進行工作調度的關鍵難點,也是一個復雜的技術問題。

    5、路徑規劃(機器人技術):在機器人技術中,路徑規劃是一個關鍵的問題。在路徑規劃中,將障礙物的邊界表示為區間,如何確定機器人的路徑與障礙物之間的相交情況,從而避免碰撞。

    6、動畫碰撞檢測(計算機圖形學):在計算機圖形學中,動畫碰撞檢測是用于模擬和控制動畫對象之間的碰撞情況。在動畫碰撞檢測中,將動畫對象的邊界表示為區間,如何確定哪些動畫對象之間存在碰撞,從而實現更加逼真的動畫效果。

    7、任務調度:在任務調度系統中,可以使用區間來表示任務的執行時間段,如何判斷任務之間是否會發生重疊或者沖突。

    8、以上應用場景均是與區間相交查詢有關的問題。在現有技術中,通常利用一定的數據結構來存儲區間數據集合,使用計算機程序對數據結構進行處理,以實現快速的查詢事件、判斷重疊事件等。

    9、現有的區間數據集合的維護方法主要有:

    10、使用線段樹:線段樹是一種二叉樹數據結構,可以有效地支持區間數據查詢操作,比如查詢某個區間的最大值、最小值等。但是線段樹通常用于靜態區間數據的維護,對于經常需要變化的數據的維護時操作復雜、效率較低。

    11、使用平衡樹:平衡樹(如紅黑樹、avl樹等)也可以用于區間數據集合的維護。通過在樹節點中存儲區間數據,可以實現區間數據的插入、刪除和查詢等操作。但是平衡樹通常實現復雜,維護成本高。


    技術實現思路

    1、本申請的目的在于克服現有區間數據集合維護方法實現復雜、效率低、維護成本高的缺陷。

    2、為了實現上述目的,本申請提出了一種區間數據集合的維護方法,基于區間鏈表實現;

    3、所述區間鏈表為基于跳躍表的數據結構;

    4、所述方法包括:

    5、利用所述區間鏈表的數據節點存儲區間數據;

    6、所述區間數據包括低端點、高端點;所述低端點為該區間數據的左端點;所述高端點為該區間數據的右端點;數據節點按區間的低端點排序,如果低端點相同,則按高端點排序。

    7、所述區間鏈表的索引節點中包含:指向數據節點的指針、指向下一層索引節點的指針、指向同一層右側索引節點的指針,以及max屬性;

    8、所述max屬性,為該索引節點與左側索引節點之間的所有區間數據中高端點的最大值;所述所有區間數據不包含左側索引節點的數據節點,包含當前索引節點的數據節點。

    9、本申請還提供一種區間數據集合插入數據的方法,基于上述的區間數據集合的維護方法實現,包括:

    10、步驟a1:從頭索引節點開始沿著索引鏈表遍歷,找到底層數據鏈表中新節點的插入位置并插入數據節點,維護相關索引節點的max屬性;

    11、步驟a2:根據隨機概率條件為新插入的數據節點創建索引節點,設置新索引節點的max屬性。

    12、作為上述方法的一種改進,所述維護相關索引節點的max屬性,包括:

    13、在每一層索引鏈表中,對于首個不小于新插入區間數據的索引節點a,如果新插入區間數據的高端點大于索引節點a的max屬性,則更新a的max屬性為新插入區間數據的高端點,否則不進行更新。

    14、作為上述方法的一種改進,所述設置新索引節點的max屬性包括:

    15、第一種情況:當新插入的索引節點沒有導致索引層級增加時,新索引節點的max屬性為從左索引節點到新索引節點之間的區間數據中高端點的最大值;其中,所述從左索引節點到新索引節點之間的區間數據,不包括左索引節點的區間數據,包括新索引節點的區間數據;

    16、如果新索引節點的max屬性不小于右索引節點的max屬性,右索引節點的max屬性更新為從新索引節點到右索引節點之間的區間數據中高端點的最大值;其中,所述從新索引節點到右索引節點之間的區間數據,不包括新索引節點的區間數據,包括右索引節點的區間數據;

    17、第二種情況:當新插入的索引節點導致索引層級增加時,新的索引層級中,新索引節點的max屬性為在底層數據鏈表中的從第一個區間數據到新插入區間數據的所有區間數據中高端點的最大值。其他層級的max屬性更新策略與第一種情況相同。

    18、本申請還提供一種區間數據集合刪除數據的方法,基于上述的區間數據集合插入數據的方法實現,包括:

    19、步驟b1:從區間鏈表中刪除節點;從頭索引節點開始沿著索引鏈表進行遍歷,在底層數據鏈表中找到要刪除的區間數據并進行刪除,更新遍歷過程中遇到的每個不小于被刪除區間數據的索引節點的max屬性;

    20、步驟b2:更新索引列表;如果被刪除節點有索引節點,在每一層級中,如果被刪除的索引節點的max屬性不小于其右索引節點的max屬性,則重新計算右索引節點的max屬性。

    21、作為上述方法的一種改進,所述更新遇到的每個不小于被刪除區間數據的索引節點的max屬性,包括:

    22、如果被刪除的區間數據的高端點的值等于該索引節點的max屬性值,則重新計算該索引節點的max屬性值。

    23、本申請還提供一種區間數據集合中查找與給定區間數據相交的區間的方法,基于上述區間數據集合刪除數據的方法實現,包括:

    24、通過獲取可能包含給定區間數據的數據鏈表的范圍方法,得到區間數據鏈表中可能包含給定區間數據x的范圍,該范圍的左側數據節點為b,右側數據節點為e;

    25、取左側數據節點b的右數據節點b.next為當前數據節點n,如果n為空則返回空,否則判斷x與n的區間數據是否相交,如果相交,則返回n的區間數據n.value,否則將n的右側數據節點n.next作為新的本文檔來自技高網...

    【技術保護點】

    1.一種區間數據集合的維護方法,基于區間鏈表實現;

    2.一種區間數據集合插入數據的方法,基于權利要求1所述的區間數據集合的維護方法實現,包括:

    3.根據權利要求2所述的區間數據集合插入數據的方法,其特征在于,所述維護相關索引節點的max屬性,包括:

    4.根據權利要求2所述的區間數據集合插入數據的方法,其特征在于,所述設置新索引節點的max屬性包括:

    5.一種區間數據集合刪除數據的方法,基于權利要求2所述的區間數據集合插入數據的方法實現,包括:

    6.根據權利要求5所述的區間數據集合刪除數據的方法,其特征在于,所述更新遇到的每個不小于被刪除區間數據的索引節點的max屬性,包括:

    7.一種區間數據集合中查找與給定區間數據相交的區間的方法,基于權利要求5所述的區間數據集合刪除數據的方法實現,其特征在于,包括:

    8.根據權利要求7所述的區間數據集合中查找與給定區間數據相交的區間的方法,其特征在于,所述判斷x與n的區間數據是否相交,包括:

    9.根據權利要求7所述的區間數據集合中查找與給定區間數據相交的區間的方法,其特征在于,所述獲取可能包含給定區間數據的數據鏈表的范圍方法,包括:

    10.一種區間數據集合中查找與給定區間數據相交的區間的裝置,基于權利要求7-9任一所述區間數據集合中查找與給定區間數據相交的區間的方法實現,其特征在于,所述裝置包括:

    ...

    【技術特征摘要】

    1.一種區間數據集合的維護方法,基于區間鏈表實現;

    2.一種區間數據集合插入數據的方法,基于權利要求1所述的區間數據集合的維護方法實現,包括:

    3.根據權利要求2所述的區間數據集合插入數據的方法,其特征在于,所述維護相關索引節點的max屬性,包括:

    4.根據權利要求2所述的區間數據集合插入數據的方法,其特征在于,所述設置新索引節點的max屬性包括:

    5.一種區間數據集合刪除數據的方法,基于權利要求2所述的區間數據集合插入數據的方法實現,包括:

    6.根據權利要求5所述的區間數據集合刪除數據的方法,其特征在于,所述更新遇到的每個不小于被刪除區間數據的索引節點的max屬...

    【專利技術屬性】
    技術研發人員:楊艷林栗垚何彥君劉魯京陳浩然王佳張妍李汶曉張秀婷
    申請(專利權)人:國家電投集團數字科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 性无码专区无码片| 中文字幕乱妇无码AV在线| 亚洲国产精品无码久久98 | 亚洲av永久无码精品网址| 无码粉嫩虎白一线天在线观看| 人妻无码一区二区三区| 无码毛片AAA在线| 国产AV无码专区亚洲AV毛网站| 久久久无码精品人妻一区| 色综合久久无码五十路人妻| 亚洲av无码天堂一区二区三区| 亚洲国产精品无码久久久秋霞1| 亚洲av中文无码乱人伦在线咪咕| 国产午夜无码视频免费网站| 永久免费av无码网站韩国毛片| 亚洲国产精品无码中文字| 无码人妻少妇久久中文字幕| 少妇久久久久久人妻无码| 免费A级毛片无码A∨| 国产爆乳无码一区二区麻豆| 免费无码作爱视频| JLZZJLZZ亚洲乱熟无码| 免费无码又爽又高潮视频| 久久精品无码一区二区三区不卡| 精品亚洲AV无码一区二区| 久久亚洲精品成人av无码网站| 国产精品无码无需播放器| 熟妇人妻系列aⅴ无码专区友真希| 午夜亚洲av永久无码精品| 国产在线拍揄自揄拍无码视频| 在线精品自偷自拍无码中文| 亚洲最大av资源站无码av网址| 亚洲欧洲无码一区二区三区| av潮喷大喷水系列无码| 亚洲人成人伊人成综合网无码| 无码精油按摩潮喷在播放| 东京热一精品无码AV| 精品久久久无码中字| 国产仑乱无码内谢| 性无码一区二区三区在线观看| 精品无码AV一区二区三区不卡|