国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種計(jì)算網(wǎng)格間引用關(guān)系的方法及裝置的制作方法

      文檔序號(hào):6585827閱讀:448來源:國(guó)知局
      專利名稱:一種計(jì)算網(wǎng)格間引用關(guān)系的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)信息處理領(lǐng)域,尤其涉及一種計(jì)算網(wǎng)格間引用關(guān)系的方法及裝置。
      背景技術(shù)
      網(wǎng)格的數(shù)據(jù)填充方法可以分為兩種模型。 一種是靜態(tài)模型。這種模型的單元格 (指行列網(wǎng)格線交叉形成的最小單位矩形區(qū)域)數(shù)量是固定的,即網(wǎng)格的行列值是固定的, 直接將數(shù)據(jù)填入網(wǎng)格對(duì)應(yīng)位置。另一種是動(dòng)態(tài)模型。這種模型的單元格數(shù)量是動(dòng)態(tài)變化 的,在設(shè)計(jì)網(wǎng)格模板時(shí)填入的是數(shù)據(jù)的引用,運(yùn)行時(shí)根據(jù)數(shù)據(jù)來動(dòng)態(tài)擴(kuò)展單元格,生成最終 的結(jié)果網(wǎng)格。 在網(wǎng)格計(jì)算中,經(jīng)常存在單元格之間相互引用的關(guān)系。對(duì)于單元格,只有將其引用 到的所有單元格值都計(jì)算出之后,才能計(jì)算本單元格的值。 對(duì)于靜態(tài)模型,單元格之間的引用關(guān)系是絕對(duì)的,例如,單元格A1引用了區(qū)域 B6-D8,即引用了第6行第2列到第8行第4列這個(gè)區(qū)域內(nèi)的所有9個(gè)單元格的值。可以使 用高效的排序算法,將所有單元格根據(jù)引用關(guān)系排成一個(gè)序列,使得被引用的單元格總是 在引用其的單元格的前面。如果無法計(jì)算出這樣一個(gè)序列,則可以認(rèn)定網(wǎng)格中出現(xiàn)了循環(huán) 引用現(xiàn)象,無法正常計(jì)算。例如,單元格A1引用了單元格B6,而單元格B6同時(shí)又引用了單 元A1。 對(duì)于動(dòng)態(tài)模型,網(wǎng)格中的單元格是在填充數(shù)據(jù)的過程中動(dòng)態(tài)擴(kuò)展復(fù)制的,即單元 格的數(shù)量在運(yùn)算過程中動(dòng)態(tài)變化,單元格之間的引用關(guān)系是相對(duì)的。例如,網(wǎng)格模板的第3 行在計(jì)算過程中動(dòng)態(tài)擴(kuò)展了 10次,那么,網(wǎng)格模板中的第4行在擴(kuò)展后的最終網(wǎng)格中就變 成了第14行。在運(yùn)算之前,不能得出一個(gè)完整的單元格序列,也無法確定相對(duì)引用的最終 引用單元格位置,也就不能事先對(duì)單元格根據(jù)引用關(guān)系排序。
      為了解決上述問題,現(xiàn)有技術(shù)中提供了如下方法 1、后排序法。對(duì)于動(dòng)態(tài)模型,在擴(kuò)展運(yùn)算完成后,得到的結(jié)果網(wǎng)格也就成了靜態(tài)網(wǎng) 格。后排序法,指的是在網(wǎng)格模型擴(kuò)展過程中不計(jì)算單元格引用,擴(kuò)展完成后,按照靜態(tài)網(wǎng) 格的排序算法進(jìn)行排序處理。雖然后排序法可以處理不存在循環(huán)引用的網(wǎng)格,但是只要網(wǎng) 格內(nèi)存在一處循環(huán)引用,其他單元格弓I用也無法計(jì)算了 。 2、多次遍歷法。在網(wǎng)格模板的擴(kuò)展過程中,進(jìn)行單元格引用的第一次遍歷,碰到引 用了尚未計(jì)算的單元格的情況,暫時(shí)放棄不計(jì)算引用關(guān)系,轉(zhuǎn)而去計(jì)算下一個(gè)單元格。擴(kuò) 展完成后,再遍歷結(jié)果網(wǎng)格,計(jì)算未處理的單元格引用,碰到引用了尚未計(jì)算的單元格的情 況,仍然是暫時(shí)放棄不計(jì)算引用關(guān)系,轉(zhuǎn)而去計(jì)算下一個(gè)單元格。循環(huán)遍歷結(jié)果網(wǎng)格,直到 網(wǎng)格中不再有任何未計(jì)算的單元格,則計(jì)算完成,或者一次遍歷過程中未計(jì)算的單元格數(shù) 量未減少,也就是說存在循環(huán)引用。多次遍歷法可以正確處理循環(huán)引用,不存在循環(huán)引用的 單元格的引用關(guān)系可以不受影響的計(jì)算出來,但是反復(fù)的遍歷導(dǎo)致計(jì)算復(fù)雜度很高,平均 復(fù)雜度為0(n2) , n是結(jié)果網(wǎng)格的單元格數(shù)量。
      4
      3、深度優(yōu)先法。深度優(yōu)先法,指的是網(wǎng)格模板的擴(kuò)展過程中,碰到引用了尚未計(jì)算 的單元格的情況,則暫停正常的擴(kuò)展,轉(zhuǎn)而去處理其引用的單元格,直到深入到一個(gè)不引用 任何其他單元格的單元格,計(jì)算出該單元格的值,再按照深度優(yōu)先算法逐步返回,直到返回 暫停處單元格,然后繼續(xù)擴(kuò)展。深度優(yōu)先法理論上可以在一次遍歷過程中完成單元格引用 關(guān)系的計(jì)算,其處理單元格引用關(guān)系的復(fù)雜度只有0 (n)。但是,其犧牲了網(wǎng)格擴(kuò)展算法的效 率,大大提高了擴(kuò)展算法的復(fù)雜度。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供一種計(jì)算網(wǎng)格間單元格引用關(guān)系的方法及裝置,以實(shí)現(xiàn)準(zhǔn)
      確快速的計(jì)算網(wǎng)格間單元格引用關(guān)系。其具體方案為 —種計(jì)算網(wǎng)格間引用關(guān)系的方法,包括 A、在擴(kuò)展網(wǎng)格模板中填充數(shù)據(jù),以生成結(jié)果網(wǎng)格; B、將尚未計(jì)算出引用關(guān)系的單元格保存在預(yù)先建立的源存儲(chǔ)單元中,記錄源存儲(chǔ) 單元中的單元格數(shù)量; C、當(dāng)源存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),計(jì)算源存儲(chǔ)單元內(nèi)的單元格的引用關(guān) 系,將無法計(jì)算的單元格轉(zhuǎn)存至預(yù)先建立的目的存儲(chǔ)單元; D、當(dāng)目的存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),如果目的存儲(chǔ)單元與源存儲(chǔ)單元中 的單元格數(shù)量相同時(shí),記錄一次相同;否則,將目的存儲(chǔ)單元和源存儲(chǔ)單元互換角色,并返 回執(zhí)行步驟B ; E、當(dāng)源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為O,或者兩者單元格的數(shù)量相 同的次數(shù)為預(yù)定的次數(shù)時(shí),結(jié)束流程。 優(yōu)選的,所述源存儲(chǔ)單元和所述目的存儲(chǔ)單元為堆棧。 優(yōu)選的,通過計(jì)數(shù)器記錄所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元 的單元格數(shù)量相同的次數(shù)。 優(yōu)選的,所述步驟A中還包括設(shè)置計(jì)數(shù)器的初始值為0。 優(yōu)選的,所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量相 同的情況的預(yù)定的次數(shù)為2次。 優(yōu)選的,所述步驟E具體為當(dāng)源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為O, 或者所述計(jì)數(shù)器內(nèi)的值為2時(shí),結(jié)束流程。 —種計(jì)算動(dòng)態(tài)網(wǎng)格間引用關(guān)系的裝置,包括源存儲(chǔ)單元、目的存儲(chǔ)單元、網(wǎng)格 擴(kuò)展處理器、記錄單元、計(jì)算單元、判斷單元、比較單元、計(jì)數(shù)單元、第二比較單元和轉(zhuǎn)換單 元; 所述網(wǎng)絡(luò)擴(kuò)展處理器用于,在擴(kuò)展網(wǎng)格模板中填充數(shù)據(jù),以生成結(jié)果網(wǎng)格;
      所述源存儲(chǔ)單元用于,存儲(chǔ)網(wǎng)格模板中尚未計(jì)算單元格引用關(guān)系的單元格;
      所述記錄單元用于,記錄源存儲(chǔ)單元中尚未計(jì)算出引用關(guān)系的單元格的數(shù)量;
      所述計(jì)算單元用于,計(jì)算源存儲(chǔ)單元中的單元格引用關(guān)系; 所述目的存儲(chǔ)單元用于,存儲(chǔ)所述源存儲(chǔ)單元中無法計(jì)算單元格引用關(guān)系的單元 格; 所述判斷單元用于,判斷所述源存儲(chǔ)單元或目的存儲(chǔ)單元中的單元格數(shù)量是否為0 ; 所述比較單元用于,比較所述目的存儲(chǔ)單元中的單元格數(shù)量是否與所述記錄單元 中的單元格數(shù)量相同; 所述計(jì)數(shù)單元用于,記錄所述目的存儲(chǔ)單元中的單元格數(shù)量與所述記錄單元中的 單元格數(shù)量相同的情況發(fā)生的次數(shù); 所述第二比較單元用于,比較所述計(jì)數(shù)單元中的所述目的存儲(chǔ)單元中的單元格數(shù)
      量與所述記錄單元中的單元格數(shù)量相同的情況發(fā)生的次數(shù)是否與預(yù)設(shè)次數(shù)相同; 所述轉(zhuǎn)換單元用于,將目的存儲(chǔ)單元和源存儲(chǔ)單元互換角色。
      優(yōu)選的,所述裝置還包括構(gòu)建單元; 所述構(gòu)建單元用于,構(gòu)建源存儲(chǔ)單元和目的存儲(chǔ)單元。 優(yōu)選的,所述源存儲(chǔ)單元和所述目的存儲(chǔ)單元的形式為堆棧。 優(yōu)選的,所述計(jì)數(shù)單元為計(jì)數(shù)器。 從上述的技術(shù)方案可以看出,本發(fā)明實(shí)施例公開的計(jì)算網(wǎng)格間單元格引用關(guān)系的 方法將擴(kuò)展過程中尚未計(jì)算出引用關(guān)系的單元格存儲(chǔ)在源存儲(chǔ)單元中,不會(huì)影響擴(kuò)展算法 的操作,而且兩個(gè)存儲(chǔ)單元間的數(shù)據(jù)交換也是在擴(kuò)展完成之后進(jìn)行的,不會(huì)影響到已經(jīng)完 成的擴(kuò)展算法,所以計(jì)算更加準(zhǔn)確;同時(shí)這種方式可以處理存在循環(huán)引用的網(wǎng)格,使得不存 在循環(huán)引用的單元格的引用關(guān)系可以不受影響的計(jì)算出來,而且算法復(fù)雜度較低,提高了 計(jì)算效率。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
      圖1為本發(fā)明公開的計(jì)算網(wǎng)格間單元格引用關(guān)系的方法流程圖; 圖2為本發(fā)明實(shí)施例1公開的計(jì)算網(wǎng)格間單元格引用關(guān)系的方法流程圖; 圖3為本發(fā)明公開的計(jì)算網(wǎng)格間單元格引用關(guān)系的裝置結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 本發(fā)明實(shí)施例公開了一種計(jì)算網(wǎng)格間引用關(guān)系的方法,以實(shí)現(xiàn)準(zhǔn)確快速的計(jì)算動(dòng) 態(tài)模型中網(wǎng)格間單元格的引用關(guān)系的目的。 本發(fā)明公開的一種計(jì)算網(wǎng)格間單元格引用關(guān)系的方法流程如圖1所示,包括
      步驟Sll、在擴(kuò)展網(wǎng)格模板中填充數(shù)據(jù),以生成結(jié)果網(wǎng)格; 步驟S12、將尚未計(jì)算出引用關(guān)系的單元格保存在源存儲(chǔ)單元,記錄源存儲(chǔ)單元中 的單元格數(shù)量;
      步驟S13、判斷所述源存儲(chǔ)單元中的單元格數(shù)量是否為0 ; 步驟S14、當(dāng)源存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),計(jì)算源存儲(chǔ)單元內(nèi)的單元格的
      引用關(guān)系,將無法計(jì)算的單元格轉(zhuǎn)存至目的存儲(chǔ)單元; 步驟S15、判斷所述目的存儲(chǔ)單元中的單元格數(shù)量是否為0 ; 步驟S16、所述目的存儲(chǔ)單元中的單元格數(shù)量不為0,判斷所述目的存儲(chǔ)單元內(nèi)單 元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量是否相同, 步驟S17、所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量 相同時(shí),將此情況記錄一次; 步驟S18、判斷此時(shí)記錄的目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的 單元格數(shù)量相同的情況的次數(shù)是否與預(yù)定次數(shù)相同; 步驟S19、所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量 不相同時(shí),將原目的存儲(chǔ)單元作為源存儲(chǔ)單元,將原源存儲(chǔ)單元作為目的存儲(chǔ)單元,返回步 驟S12 ; 步驟S110、所述源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為0,或者所述目的 存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量相同的次數(shù)與預(yù)定的次數(shù)相 同時(shí),過程結(jié)束。 通過上述操作,可以實(shí)現(xiàn)對(duì)動(dòng)態(tài)網(wǎng)格內(nèi)單元格的引用關(guān)系準(zhǔn)確快速的計(jì)算的目 的。 實(shí)施例一 本發(fā)明實(shí)施例1中的動(dòng)態(tài)網(wǎng)格為網(wǎng)格型報(bào)表,預(yù)先設(shè)定當(dāng)有兩次目的存儲(chǔ)單元的 單元格數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量相等的情況時(shí),判定過程結(jié)束,其具體的計(jì) 算網(wǎng)格間引用關(guān)系的方法流程如圖2所示,包括 步驟S21、設(shè)置計(jì)數(shù)器初始值為0,網(wǎng)格擴(kuò)展處理器擴(kuò)展網(wǎng)格模板,填充數(shù)據(jù),直到 生成結(jié)果網(wǎng)格。擴(kuò)展過程中; 步驟S22、將尚未計(jì)算引用關(guān)系的單元格壓入源堆棧,記錄源堆棧的單元格數(shù)量;
      步驟S23、判斷所述原堆棧的單元格數(shù)量是否為0 ; 步驟S24、原堆棧的單元格數(shù)量不為0時(shí),遍歷源堆棧,計(jì)算單元格的引用關(guān)系結(jié) 果,并將結(jié)果填入結(jié)果網(wǎng)格中的對(duì)應(yīng)位置,將無法計(jì)算出引用關(guān)系的單元格壓入目的堆棧, 所述原堆棧的單元格數(shù)量為0時(shí),跳轉(zhuǎn)到步驟S210 ; 步驟S25、判斷目的堆棧的單元格數(shù)量是否為0,如果為0,則轉(zhuǎn)到步驟S210,如不 為O,則順序執(zhí)行; 步驟S26、判斷目的堆棧的單元格數(shù)量是否與記錄的源堆棧的單元格數(shù)量相等;
      步驟S27、如果相等,則計(jì)數(shù)器值加1,執(zhí)行步驟S28 ;否則計(jì)數(shù)器值0,執(zhí)行步驟 S28 ; 步驟S28、判斷是否計(jì)數(shù)器值是否等于2,如果相等,則轉(zhuǎn)到步驟S210,如果不等, 則執(zhí)行步驟S29 ; 步驟S29、將源堆棧和目的堆棧對(duì)應(yīng)的第一堆棧和第二堆棧的關(guān)系互換,返回步驟 S22 ; 步驟S210、完成計(jì)算。
      上述步驟S23-步驟S28中所述是在兩個(gè)堆棧之間進(jìn)行數(shù)據(jù)交換,根據(jù)堆棧的特 性,每個(gè)堆棧中的單元格次序正好是相反的,所以每?jī)纱伪闅v等于是將單元格在正反次序 上各遍歷一次。上述步驟S24中所述的遍歷過程中,源堆棧中的每個(gè)單元格都是取出之后 再計(jì)算,所以遍歷之后源堆棧一定為空。 上述步驟S25中所述目的堆棧為空,而前邊已經(jīng)提到源堆棧也為空,所以已經(jīng)不
      存在任何尚未計(jì)算的單元格引用關(guān)系,所以單元格引用關(guān)系計(jì)算結(jié)束。 上述步驟S27中所述計(jì)數(shù)器值為2,表示經(jīng)過正反兩次遍歷后,源堆棧的長(zhǎng)度都等
      于目的堆棧的長(zhǎng)度,說明堆棧長(zhǎng)度不再發(fā)生變化且堆棧不為空,即能夠計(jì)算的單元格引用
      關(guān)系都已計(jì)算完畢,只剩下循環(huán)引用關(guān)系即死循環(huán),所以此時(shí),沒有再計(jì)算下去的必要,計(jì)
      算過程結(jié)束。在此過程中,可以設(shè)定判定死循環(huán)的條件,不一定當(dāng)計(jì)數(shù)器為2時(shí),判為死循
      環(huán),也可以是其他的數(shù)值,比如說4,也就是表示經(jīng)歷正反四次遍歷后,源堆棧的長(zhǎng)度都等于
      目的堆棧的長(zhǎng)度,所以此時(shí),判定網(wǎng)格模板中存在死循環(huán)。設(shè)置的值越大,遍歷的次數(shù)越多,
      計(jì)算就越精確。但是,復(fù)雜度會(huì)相應(yīng)的提高,所以當(dāng)值為2時(shí),既能保證判斷的準(zhǔn)確性,又能
      不增加計(jì)算的復(fù)雜度,是最佳的判定條件。 上述步驟S27中所述將源堆棧和目的堆棧對(duì)應(yīng)的第一堆棧和第二堆棧的關(guān)系互 換,也就是說,如果當(dāng)前源堆棧是第一堆棧,則下次遍歷時(shí)將第一堆棧將做為目的堆棧,第 二堆棧做為源堆棧。 本發(fā)明還公開了一種計(jì)算網(wǎng)格間單元格的引用關(guān)系的裝置,其結(jié)構(gòu)如圖3所示, 包括源存儲(chǔ)單元31、目的存儲(chǔ)單元32、網(wǎng)絡(luò)擴(kuò)展處理器33、記錄單元34、計(jì)算單元35、判 斷單元36、第一比較單元37、計(jì)數(shù)單元38、第二比較單元39和轉(zhuǎn)換單元310。其中
      所述網(wǎng)絡(luò)擴(kuò)展處理器33用于,擴(kuò)展網(wǎng)格模板,填充數(shù)據(jù),生成結(jié)果網(wǎng)格;
      所述源存儲(chǔ)單元31用于,存儲(chǔ)網(wǎng)格模板中尚未計(jì)算單元格引用關(guān)系的單元格;
      所述記錄單元34用于,記錄源存儲(chǔ)單元31中尚未計(jì)算出引用關(guān)系的單元格的數(shù) 所述計(jì)算單元35用于,計(jì)算源存儲(chǔ)單元31中的單元格引用關(guān)系; 所述目的存儲(chǔ)單元32用于,存儲(chǔ)所述源存儲(chǔ)單元31中無法計(jì)算單元格引用關(guān)系
      的單元格; 所述判斷單元36用于,判斷所述源存儲(chǔ)單元31或目的存儲(chǔ)單元32中的單元格數(shù) 量是否為0 ; 所述第一比較單元37用于,比較所述目的存儲(chǔ)單元32中的單元格數(shù)量是否與所 述記錄單元34中的單元格數(shù)量相同; 所述計(jì)數(shù)單38元用于,記錄所述目的存儲(chǔ)單元32中的單元格數(shù)量與所述記錄單 元34中的單元格數(shù)量相同的情況發(fā)生的次數(shù); 所述第二比較單元39用于,比較所述計(jì)數(shù)單元38中的所述目的存儲(chǔ)單元32中的 單元格數(shù)量與所述記錄單元34中的單元格數(shù)量相同的情況發(fā)生的次數(shù)是否與預(yù)設(shè)次數(shù)相 同; 所述轉(zhuǎn)換單元310用于,將所述源存儲(chǔ)單元31定義為新的目的存儲(chǔ)單元,將所述 目的存儲(chǔ)單元32定義為新的源存儲(chǔ)單元。 此外,本裝置還包括構(gòu)建單元311,所述構(gòu)建單元311用于,構(gòu)建源存儲(chǔ)單元31和目的存儲(chǔ)單元32 ; 本實(shí)施例中的源存儲(chǔ)單元和所述目的存儲(chǔ)單元的形式為堆棧,所述計(jì)數(shù)單元為計(jì) 數(shù)器。 本發(fā)明公開的計(jì)算網(wǎng)格間單元格引用關(guān)系的方法具有如下優(yōu)點(diǎn) 1)可以處理存在循環(huán)引用的網(wǎng)格,使得不存在循環(huán)引用的單元格的引用關(guān)系可以
      不受影響的計(jì)算出來。 2)不會(huì)影響網(wǎng)格擴(kuò)展算法。因?yàn)樵跀U(kuò)展過程中,遇到單元格引用了尚未計(jì)算的其 他單元格的情況時(shí),只是將單元格壓棧,不會(huì)進(jìn)行其他影響擴(kuò)展算法的操作。而堆棧之間的 數(shù)據(jù)交換是在擴(kuò)展完成后才進(jìn)行,更不可能影響到已經(jīng)完成的擴(kuò)展算法。
      3)算法復(fù)雜度較低,提高了計(jì)算效率。假設(shè)n是結(jié)果網(wǎng)格的全部單元格數(shù)量,m 是存在引用關(guān)系的單元格數(shù)量。本算法的復(fù)雜度可以分為兩部分一部分是擴(kuò)展過程中完 成的單元格引用關(guān)系,這部分等于將結(jié)果網(wǎng)格的全部單元格遍歷一遍,復(fù)雜度固定為O(n); 另一部分是擴(kuò)展后通過堆棧完成的單元格引用關(guān)系計(jì)算,最好的情況下復(fù)雜度為O(O),最 差情況下為0(n^(m-l)/2)。由于O 〈二m〈二n,所以整個(gè)算法最好的情況下復(fù)雜度為 0(n),最差情況下為0(n* (n+1) /2)。這樣看來,最差情況下算法的時(shí)間復(fù)雜度并沒有提高。 但是實(shí)際上,在大多數(shù)情況下,網(wǎng)格中不會(huì)大量存在單元格引用關(guān)系,也就是說m其實(shí)是遠(yuǎn) 小于n的。而且本算法中每次遍歷單元格的順序正好是相反的,大多數(shù)情況下經(jīng)過4次遍歷 就可以完成計(jì)算,也就是說復(fù)雜度小于0(n+4m),如果存在循環(huán)引用的情況,再加上確定死 循環(huán)的2次遍歷,復(fù)雜度小于0(n+6m)。所以在大多數(shù)情況下,其平均復(fù)雜度為在0(n+5m), 且m << n。 本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他 實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置 而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說 明即可。 本領(lǐng)域技術(shù)人員可以理解,可以使用許多不同的工藝和技術(shù)中的任意一種來表示 信息、消息和信號(hào)。例如,上述說明中提到過的消息、信息都可以表示為電壓、電流、電磁波、 磁場(chǎng)或磁性粒子、光場(chǎng)或以上任意組合。 專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元 及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和 軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些 功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè) 技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng) 認(rèn)為超出本發(fā)明的范圍。 結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí) 行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存 儲(chǔ)器(ROM)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤、可移動(dòng)磁盤、CD-R0M、或技術(shù) 領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。 對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明 將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一 致的最寬的范圍。
      權(quán)利要求
      一種計(jì)算網(wǎng)格間引用關(guān)系的方法,其特征在于,包括A、在擴(kuò)展網(wǎng)格模板中填充數(shù)據(jù),以生成結(jié)果網(wǎng)格;B、將尚未計(jì)算出引用關(guān)系的單元格保存在預(yù)先建立的源存儲(chǔ)單元中,記錄源存儲(chǔ)單元中單元格數(shù)量;C、當(dāng)源存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),計(jì)算源存儲(chǔ)單元內(nèi)的單元格的引用關(guān)系,將無法計(jì)算的單元格轉(zhuǎn)存至預(yù)先建立的目的存儲(chǔ)單元;D、當(dāng)目的存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),如果目的存儲(chǔ)單元與源存儲(chǔ)單元中的單元格數(shù)量相同,記錄一次相同;否則,將目的存儲(chǔ)單元和源存儲(chǔ)單元互換角色,并返回執(zhí)行步驟B;E、當(dāng)源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為0,或者兩者單元格的數(shù)量相同的次數(shù)為預(yù)定的次數(shù)時(shí),結(jié)束流程。
      2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述源存儲(chǔ)單元和所述目的存儲(chǔ)單元為堆棧。
      3 . 根據(jù)權(quán)利要求2所述的方法,其特征在于,通過計(jì)數(shù)器記錄所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量相同的次數(shù)。
      4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟A中還包括設(shè)置計(jì)數(shù)器的初始值為0。
      5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述目的存儲(chǔ)單元內(nèi)單元格的數(shù)量與記錄的源存儲(chǔ)單元的單元格數(shù)量相同的情況的預(yù)定的次數(shù)為2次。
      6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟E具體為當(dāng)源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為O,或者所述計(jì)數(shù)器內(nèi)的值為2時(shí),結(jié)束流程。
      7. —種計(jì)算動(dòng)態(tài)網(wǎng)格間引用關(guān)系的裝置,其特征在于,包括源存儲(chǔ)單元、目的存儲(chǔ)單元、網(wǎng)格擴(kuò)展處理器、記錄單元、計(jì)算單元、判斷單元、比較單元、計(jì)數(shù)單元、第二比較單元和轉(zhuǎn)換單元;所述網(wǎng)絡(luò)擴(kuò)展處理器用于,在擴(kuò)展網(wǎng)格模板中填充數(shù)據(jù),以生成結(jié)果網(wǎng)格;所述源存儲(chǔ)單元用于,存儲(chǔ)網(wǎng)格模板中尚未計(jì)算單元格引用關(guān)系的單元格;所述記錄單元用于,記錄源存儲(chǔ)單元中尚未計(jì)算出引用關(guān)系的單元格的數(shù)量;所述計(jì)算單元用于,計(jì)算源存儲(chǔ)單元中的單元格引用關(guān)系;所述目的存儲(chǔ)單元用于,存儲(chǔ)所述源存儲(chǔ)單元中無法計(jì)算單元格引用關(guān)系的單元格;所述判斷單元用于,判斷所述源存儲(chǔ)單元或目的存儲(chǔ)單元中的單元格數(shù)量是否為0 ;所述比較單元用于,比較所述目的存儲(chǔ)單元中的單元格數(shù)量是否與所述記錄單元中的單元格數(shù)量相 ;所述計(jì)數(shù)單元用于,記錄所述目的存儲(chǔ)單元中的單元格數(shù)量與所述記錄單元中的單元格數(shù)量相同的情況發(fā)生的次數(shù);所述第二比較單元用于,比較所述計(jì)數(shù)單元中的所述目的存儲(chǔ)單元中的單元格數(shù)量與所述記錄單元中的單元格數(shù)量相同的情況發(fā)生的次數(shù)是否與預(yù)設(shè)次數(shù)相同;所述轉(zhuǎn)換單元用于,將目的存儲(chǔ)單元和源存儲(chǔ)單元互換角色。
      8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括構(gòu)建單元;所述構(gòu)建單元用于,構(gòu)建源存儲(chǔ)單元和目的存儲(chǔ)單元。
      9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述源存儲(chǔ)單元和所述目的存儲(chǔ)單元的形式為堆棧。
      10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述計(jì)數(shù)單元為計(jì)數(shù)器。
      全文摘要
      本發(fā)明實(shí)施例公開了一種計(jì)算網(wǎng)格間引用關(guān)系的方法及裝置,該方法為將擴(kuò)展后的網(wǎng)格模板中尚未計(jì)算出引用關(guān)系的單元格保存在預(yù)先建立源存儲(chǔ)單元并記錄數(shù)量;當(dāng)源存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),計(jì)算源存儲(chǔ)單元內(nèi)的單元格的引用關(guān)系,將無法計(jì)算的單元格轉(zhuǎn)存至預(yù)先建立的目的存儲(chǔ)單元;當(dāng)目的存儲(chǔ)單元中的單元格數(shù)量不為0時(shí),如果目的存儲(chǔ)單元與源存儲(chǔ)單元中的單元格數(shù)量相同時(shí),記錄一次相同;否則,將目的存儲(chǔ)單元和源存儲(chǔ)單元互換角色,循環(huán)執(zhí)行上述操作;當(dāng)源存儲(chǔ)單元或目的存儲(chǔ)單元內(nèi)的單元格數(shù)量為0,或者兩者單元格的數(shù)量相同的次數(shù)為預(yù)定的次數(shù)時(shí),結(jié)束流程。該方法能夠?qū)崿F(xiàn)準(zhǔn)確快速的計(jì)算網(wǎng)格間單元格引用關(guān)系。
      文檔編號(hào)G06F17/00GK101710316SQ200910250678
      公開日2010年5月19日 申請(qǐng)日期2009年12月14日 優(yōu)先權(quán)日2009年12月14日
      發(fā)明者喬璐, 李治, 車帥 申請(qǐng)人:山東中創(chuàng)軟件工程股份有限公司;山東中創(chuàng)軟件商用中間件股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1