本發(fā)明涉及日常救助領(lǐng)域,更具體地,涉及一種基于隨機序列排序算法的日常緊急求助方法。
背景技術(shù):
:現(xiàn)代社會越來越被稱為“風(fēng)險社會”,風(fēng)險社會是一個大數(shù)據(jù)社會。在全球化發(fā)展背景下,由于人類實踐所導(dǎo)致的全球性風(fēng)險占據(jù)主導(dǎo)地位成為當(dāng)代社會發(fā)展階段的一大特征?,F(xiàn)代性的一個明顯特征是,社會變遷的步伐加快、范圍擴大和空前的深刻性。這種對社會生活和自然的干預(yù)范圍與深度的空前擴大,新的需要越來越多,新的問題也不斷涌現(xiàn)。在這樣的社會里,滿足需要的方法會引出新的需要,解決問題的方法會引出更多的問題。在現(xiàn)實意義上,風(fēng)險社會的結(jié)構(gòu)不是由階級、階層等要素組成的,而是由個人行為主體構(gòu)成的。也就是說風(fēng)險社會的秩序并不是等級式的、垂直的,而是網(wǎng)絡(luò)型的、平面擴展的,每個個體在風(fēng)險社會中都是“平等主義者”。風(fēng)險作為一種心理認知的結(jié)果,風(fēng)險社會概念的出現(xiàn)體現(xiàn)了人類對風(fēng)險認識的加深。人們認識到在風(fēng)險社會中,本來用來解決問題的手段方法也有可能會引起新的問題帶來新的風(fēng)險。風(fēng)險并不是有序的排列,而是呈現(xiàn)一種橫向分布的無結(jié)構(gòu)狀態(tài),其產(chǎn)生與傳播越來越不依靠程序性的規(guī)則和規(guī)范。同時也意識到在這種情況下專業(yè)知識的局限性。另外,風(fēng)險意識本身也成為一種風(fēng)險:風(fēng)險意識的分布趨于均勻,許多風(fēng)險被廣大公眾所了解后反而變得熟視無睹。因此而帶來這樣的困境:盡管對風(fēng)險的認識水平提高了,反而對風(fēng)險的應(yīng)對不足。國外從事應(yīng)急管理工作與應(yīng)急軟件產(chǎn)品開發(fā)時間較早,其中美國、日本和德國的應(yīng)急設(shè)備比較先進。目前,我國在突發(fā)緊急事件應(yīng)對的手持終端產(chǎn)品中,呈現(xiàn)功能非常單一,實用性不強,交互性差,也無法實現(xiàn)危機信息預(yù)警發(fā)布。國內(nèi)幾個常見的同類產(chǎn)如下:1.《求救發(fā)訊器》,它只有一個單一的求救功能,通過該應(yīng)用軟件發(fā)出內(nèi)含“衛(wèi)星定位咨訊”與“定位地址”的電子郵件或簡訊給用戶的好友,達到呼朋引伴或盡快脫離困境與險境。此方式為單向求助方式,求助者發(fā)出求助信息無法和接收到求助信息的接收者進行及時的互動,導(dǎo)致求助者無法及時獲得救援或者得到有效的應(yīng)對措施,以致無法應(yīng)對處置或者對應(yīng)處置延遲。2.《現(xiàn)場急救指南》通過整合各類急救知識,使得突發(fā)狀況下專業(yè)救援隊還沒到達現(xiàn)場或者無法到達的時候,開展妥善的自救與互救。但是軟件的ui設(shè)計與交互方式不夠人性化,通過各類專業(yè)性的分門別類,普通的缺乏專業(yè)知識的大眾,在使用該款軟件時,往往出現(xiàn)無法歸類判別,以至無法應(yīng)對處置或者應(yīng)對處置延遲。而且此方式只能依靠求助者自助,在現(xiàn)場急救指南無法提供幫助時,求助者無法將其求助信息準確及時傳達出去,也就無法及時獲得外部的救援。3.《緊急呼叫助手》,遇到緊急情況需要撥打匪警,急救,火警,交通事故,天氣預(yù)報,號碼查詢等號碼時,該工具會對匪警,急救,火警,交通事故等電話撥打時的注意事項有詳細的描述,用戶可以按照操作指南正確撥打緊急號碼,提高撥打效率。此方式是通過撥打常規(guī)的救援電話來獲得緊急救助,雖然能夠進行求助互動,但此類常規(guī)的救援電話都對應(yīng)了常規(guī)的救援類型,每個救援電話對應(yīng)一類或者多類的救援,除其對應(yīng)的救援外,救援電話的被求助者很難甚至無法提供其他類型的救援。但現(xiàn)實生活中,求助類型各種各樣,除常規(guī)的救援外,對于其他類型的救援常規(guī)的救援電話無法起作用,也就無法提供及時的救援。4.《緊急求救軟件adososv1.0》是一款在緊急情況下向其他人顯示求救信息的軟件,向左或向右刷改變顏色,上或向下刷改變顯示的詞,可去菜單/設(shè)置輸入要顯示的詞,可用手機的locale選擇中文或英文。此軟件是將求助信息發(fā)送出去,但仍然缺少求助者和被求助者之間的互動,導(dǎo)致求助者無法及時獲得救援或者得到有效的應(yīng)對措施,以致無法應(yīng)對處置或者對應(yīng)處置延遲,功能十分單一。5.《智能呼救手機》是一款為老年人設(shè)計專用的手機,一旦老人突然發(fā)生意外,可直接按“999”急救鍵,不論病人在北京的哪個地方,999的指揮中心都可迅速通過急救手機定位系統(tǒng),鎖定呼救人的位置。顯然,該手機功能用途范圍較窄,6.《緊急警報》,該應(yīng)用程序可追蹤用戶的旅行線路并在用戶發(fā)生意外事故時,根據(jù)事先的設(shè)置將事故報告和用戶的方位發(fā)送到指定手機號碼。此方式是被動式地將發(fā)生意外事故的信息發(fā)送到指定手機號碼,無法進行求助者和被求助者之間的互動,導(dǎo)致求助者無法及時獲得救援或者得到有效的應(yīng)對措施,以致無法應(yīng)對處置或者對應(yīng)處置延遲,功能十分單一。上述突發(fā)事件的緊急求助方式功能單一,無法實現(xiàn)有效地求助互動,就算能夠?qū)崿F(xiàn)求助互動,也僅僅限于電話而且是常規(guī)的救援電話的求助,能獲得的緊急幫忙非常有限。目前,國際上在移動互聯(lián)網(wǎng)手持急救援與預(yù)警方面的理論與應(yīng)用研究還是空白,日常的緊急求助系統(tǒng)也尚未見有。因此,基于移動終端緊急求助與風(fēng)險信息預(yù)警平臺的設(shè)計與算法研究能填補國際學(xué)術(shù)界在該研究與應(yīng)用領(lǐng)域的空白,無論是理論研究意義還是實際應(yīng)用價值都非常大,是大數(shù)據(jù)社會應(yīng)用發(fā)展的一種應(yīng)用趨勢。技術(shù)實現(xiàn)要素:本發(fā)明為克服上述現(xiàn)有技術(shù)所述的至少一種缺陷(不足),提供一種能夠提高求助效率的基于隨機序列排序算法的日常緊急求助方法。為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下:一種基于隨機序列排序算法的日常緊急求助方法,包括:s1.針對求助者移動智能終端發(fā)出的求助信息,app平臺接收應(yīng)答者的應(yīng)答信息,并根據(jù)應(yīng)答者與求助者之間的位置信息計算求助者與各個應(yīng)答者之間的距離;s2.app平臺將求助者與各個應(yīng)答者之間的距離進行排序,并將排序結(jié)果反饋給求助者移動智能終端。本發(fā)明的app平臺根據(jù)求助者移動智能終端發(fā)出的求助信息轉(zhuǎn)發(fā)給求助者周圍的移動智能終端上,周圍會有人利用移動智能終端進行應(yīng)答,app平臺會收到應(yīng)答者的應(yīng)答信息,為了提高求助者對應(yīng)答信息的篩選,app平臺根據(jù)應(yīng)答者和求助者之間的位置信息先計算求助者和各個應(yīng)答者之間的距離,然后對距離進行從小到大排序,排序結(jié)果提供給求助者,這樣,求助者可以根據(jù)距離排序結(jié)果快速找到滿足求助要求且距離合適的應(yīng)答者進行幫忙,從而有效提高求助效率。上述方案中,所述s2中app平臺將求助者與各個應(yīng)答者之間的距離進行從小到大排序的具體步驟為:若在一個限定的時間內(nèi),任何一個相同的時間點或其中任何非常短的時間間隔內(nèi),沒有兩個或者兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息到達app平臺,則利用隨機序列動態(tài)比較置換排序算法對求助者與各個應(yīng)答者之間的距離進行從小到大排序;若在一個限定的時間內(nèi),在相同的一個時間點或者在非常短的時間間隔內(nèi),有兩個或者兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息到達app平臺,則利用相鄰元素奇偶相錯比較排序算法對對求助者與各個應(yīng)答者之間的距離進行從小到大排序。若在一個限定的時間內(nèi),有一些時間點只有一個應(yīng)答者發(fā)出信息,從該應(yīng)答者發(fā)出的回應(yīng)信息距離下一位應(yīng)答者發(fā)出的回應(yīng)信息有一定的時間間隔;另有一些時間點或在非常短的一個時間間隔內(nèi),有兩個或以上的應(yīng)答者同時發(fā)出應(yīng)答信息,則綜合交叉應(yīng)用隨機序列動態(tài)比較置換排序法和相鄰元素奇偶相錯比較排序法來對求助者與各個應(yīng)答者之間的距離進行從小到大排序。利用上述兩個排序算法,可以解決不同時間以及相同時間的應(yīng)答信息的排序問題,從而解決在求助者發(fā)出求助信息后,app平臺可以對所得到的所有應(yīng)答者與求助者之間的距離進行遠近排序。上述方案中,利用隨機序列動態(tài)比較置換排序算法對求助者與各個應(yīng)答者之間的距離進行從小以大排序的具體步驟如下:假設(shè)app平臺在先后不同的時間內(nèi)接收到n位應(yīng)答者的應(yīng)答信息,用變量m1,m2,…,mn來分別表示這n個應(yīng)答者與救助者之間的距離;第1步:建立兩個空間大小為n+1的空隊列a[n]和b[n],隊列a和b的首空間a[0]和b[0]留空,b[0]用來做動態(tài)元素置換過程的臨時備用空間,a[1]是隊列a的首元素空間,b[1]是隊列b的首元素空間;隊列a用來存儲原始動態(tài)數(shù)據(jù)mi,隊列b用來存儲經(jīng)過對動態(tài)數(shù)據(jù)mi進行比較置換后得到從小到大排序的新數(shù)據(jù)序列ti,其中i=1,2,…,n;第2步:當(dāng)接收到第一個應(yīng)答者的應(yīng)答信息時,將產(chǎn)生第1位應(yīng)答者與救助者之間的距離,用變量m1表示;讓m1直接入隊列a作為首元素,a[1]=m1。令t1=m1,t1入隊列b作為首元素,b[1]=t1;第3步:接收到第2位應(yīng)答者的應(yīng)答信息,將產(chǎn)生第2位應(yīng)答者與救助者之間的距離,用變量m2表示,讓m2入隊a作為尾元素,此時有a[2]=m2;令t2=m2,讓t2入隊列b中的臨時備用空間b[0],即有b[0]=t2;對隊列b,以當(dāng)前b[0]空間中的元素t2作為基準元素,與隊列b中已有元素t1作如下比較和置換的操作:1)若t2≥t1,則令b[2]=t2,此時有:b[1]≤b[2],所以隊列b中已有的元素t1、t2已按從小到大的順序排序;2)若t2≤t1,則進行如下置換操作:于是b[1]≤b[2],作如下賦值:得到t1≤t2,因此得到了隊列b中的元素t1、t2按從小到大的順序排序;第4步:接收到第3位應(yīng)答者發(fā)出應(yīng)答信息,將產(chǎn)生第3位應(yīng)答者與救助者之間的距離,用變量m3表示,讓m3入隊a作為尾元素,此時有a[3]=m3;令t3=m3,讓t3入隊列b中的臨時備用空間b[0],即有b[0]=t3;對隊列b,以當(dāng)前b[0]空間中的元素t3作為基準元素,從隊列b中當(dāng)前的尾元素t2起,用t3與隊列b中已有元素的倒序:t2、t1之間順序作如下兩兩相鄰元素逐步比較和置換的操作:若t3≥t2,則令b[3]=t3,此時b[2]≤b[3],因為隊列b中已有的元素t2、t1是已經(jīng)排好序的,即t1≤t2,亦即b[1]≤b[2],所以有b[1]≤b[2]≤b[3],于是有t1≤t2≤t3,所以得到隊列b中的元素t1,t2,t3按從小到大的順序排序;若t3<t2,則需要進一步進行如下比較和置換;若t3≥t1,則有t1≤t3<t2。因為b[1]=t1,b[2]=t2,b[0]=t3,所以b[1]空間中的元素t1不動,需要對t2,t3及其所在的隊列空間進行如下置換操作:于是得到b[2]<b[3],作如下賦值:于是得到t2<t3,因此t1≤t2<t3,得到b[1]≤b[2]<b[3],這說明隊列b中的元素t1,t2,t3按從小到大的順序排序;若t3<t1,則有t3<t1≤t2,因為b[1]=t1,b[2]=t2,b[0]=t3,所以需要進行如下置換操作:于是得到b[1]<b[2]≤b[3],作如下賦值:于是得到t1≤t2<t3,此時隊列b中的元素t1,t2,t3已按從小到大的順序排序。第5步:如此繼續(xù)進行,假設(shè)一直進行到在求助者發(fā)出求助信息號后,已有k位應(yīng)答者發(fā)送應(yīng)答信息,其中第i位應(yīng)答者與求助者之間的距離為mi,mi入隊列a,并且按照發(fā)布信息的時間前后順序入隊,相應(yīng)有一個序列ti為mi的一種新排列,滿足從小到大的順序排序,即t1≤t2≤…≤tk,i=1,2,…,k;當(dāng)?shù)趉+1位應(yīng)答者發(fā)出應(yīng)答信息時,將產(chǎn)生第k+1個距離,即第k+1位應(yīng)答者與求助者之間的距離,用變量mk+1表示。讓mk+1入隊a作為尾元素,此時有a[k+1]=mk+1。令tk+1=mk+1,讓tk+1入隊列b中的臨時備用空間b[0],即有b[0]=tk+1;對隊列b,以當(dāng)前b[0]空間中的元素tk+1作為基準元素,從隊列b中當(dāng)前的尾元素tk起,用與隊列b中已有元素的倒序:tk,tk-1,…,t3,t2,t1之間順序作如下兩兩相鄰元素逐步比較和置換的操作:若tk+1≥tk,則令b[k+1]=tk+1,此時有b[k]≤b[k+1],因為隊列b中已有的元素t1,t2,t3,…,tk-1,tk是已經(jīng)排好序的,即t1≤t2≤t3≤…≤tk-1≤tk,亦即b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k],所以b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k]≤b[k+1],即有t1≤t2≤t3≤…≤tk-1≤tk≤tk+1,于是得到隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序。若tk+1<tk,則需要進一步進行如下比較和置換,若tk+1≥tk-1,則有tk-1≤tk+1<tk。因為b[k-1]=tk-1,b[k]=tk,b[0]=tk+1,所以讓b[k-1]空間中的元素tk-1不動,需要對tk,tk+1及其所在的隊列空間進行如下置換操作:于是得到b[k]<b[k+1],作如下賦值:于是得到tk<tk+1,因此t1≤t2≤t3≤…≤tk-1≤tk<tk+1,得到b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k]<b[k+1],這說明隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序。若tk+1<tk-1,則有,tk+1<tk-1≤tk,因為b[k-1]=tk-1,b[k]=tk,b[0]=tk+1,所以需要進行如下置換操作:于是得到b[k-1]≤b[k]≤b[k+1],作如下賦值:于是得到tk-1<tk≤tk+1,因此t1≤t2≤t3≤…≤tk-1≤tk<tk+1,得到b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1],這說明,隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序;如此繼續(xù)進行,一直到tk+1<t2,并按照以上的方法得到t2,t3,…,tk-1,tk,tk+1已經(jīng)按從小到大的順序排序。于是,只需要最后比較tk+1和t1的大小。令b[0]=tk+1,討論如下兩情形:(ⅰ)假如tk+1≥t1,由于t2≤t3≤…≤tk,所以t1≤tk+1≤t2≤t3≤…≤tk。又因為b[k]=tk,b[k-1]=tk-1,…,b[2]=t2,b[1]=t1,故可作如下置換:則有b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1],然后再作如下賦值:則有t1≤t2≤t3≤…≤tk-1≤tk<tk+1,于是隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序;(ii)假如tk+1<t1,由于t1≤t2≤t3≤…≤tk,所以tk+1<t1≤t2≤t3≤…≤tk。又因為b[k]=tk,b[k-1]=tk-1,…,b[2]=t2,b[1]=t1,故可作如下置換:則有b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1]。然后再作如下賦值:則有t1≤t2≤t3≤…≤tk-1≤tk<tk+1,于是隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序;上述方案中,利用相鄰元素奇偶相錯比較排序算法對求助者與各個應(yīng)答者之間的距離進行從小到大排序的具體步驟如下:假設(shè)在某一個相同的時間點或非常短的時間間隔內(nèi),一共有m位應(yīng)答者同時發(fā)送應(yīng)答信息到達app平臺上,用變量s1,s2,…,sm來表示這m位應(yīng)答者與救助者之間和距離;第1步:由于m位應(yīng)答者與求助者之間的距離s1,s2,…,sm是在同一個時間或幾乎同一個時間產(chǎn)生的,所以s1,s2,…,sm的初始形態(tài)按任意一種序列排序,假設(shè)該序列最初就按s1,s2,…,sm排序;第2步,下面分m為偶數(shù)、奇數(shù)兩種不同的情形分別進行討論(3)若m為偶數(shù)(ⅰ)將序列s1,s2,…,sm從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1)其中,i=1,2,…,m-1,由于m是偶數(shù),所以剛好組成組兩兩相鄰的數(shù)對;(ii)對每一組數(shù)對(si,si+1)中的兩個數(shù)進行大小比較③若si≤si+1,則保持該數(shù)對的順序不變;④若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過上述比較從左到右對相鄰兩個數(shù)大小的處理,得到s1,s2,…,sm序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止,否則轉(zhuǎn)入下一步(ⅲ);(ⅲ)對序列s1,s2,…,sm,分兩步進行:③將第1個元素s1和最后一個元素sm組成數(shù)對,然后比較s1和sm的大?。蝗魋1≤sm,則保持s1和sm的順序不變;若s1>sm,則調(diào)換s1和sm的位置,使sm做成該序列的第1個元素,s1做成該序列的最后一個元素;④從第2個元素s2到倒數(shù)第2個元素sm-1,從左到右將兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中i=2,3,…,m-2,由于m為偶數(shù),所以剛好組成組兩兩相鄰的數(shù)對;(iv)對每一組數(shù)對(si,si+1)(i=2,3,…,m-2)中的兩個數(shù)進行大小比較④若si≤si+1,則保持該數(shù)對的順序不變;⑤若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(iv)從左到右對相鄰兩個數(shù)大小的處理,得到s1≤sm,且s2,s3,…,sm-1序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序。如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止,否則回到第2步(1)中的(ⅰ)重新開始,如此反復(fù)進行,一直進行到s1,s2,…,sm從小到大排序為止,此時,算法將終止;(4)若m為奇數(shù)(ⅰ)將序列s1,s2,…,sm從第1個元素s1起,從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中,i=1,2,…,m-2,由于m是奇數(shù),所以該序列組成組兩兩相鄰的數(shù)對,sm為剩余元素,無元素可組對;(ii)對每一組數(shù)對(si,si+1)(i=1,2,…,m-2)中的兩個數(shù)進行大小比較①若si≤si+1,則保持該數(shù)對的順序不變;⑥若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(ii)從左到右對相鄰兩個數(shù)大小的處理,得到s1,s2,…,sm-1序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm-1,sm已經(jīng)從小到大排序,則算法終止;否則轉(zhuǎn)入下一步(ⅲ);(ⅲ)保留第1個元素s1不動,從第2個元素s2起,從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中i=2,3,…,m-1,由于m為奇數(shù),所以可組成組兩兩相鄰的數(shù)對;③若si≤si+1,則保持該數(shù)對的順序不變;④若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(ⅲ)從左到右對相鄰兩個數(shù)大小的處理,得到s2,s3,…,sm序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止;否則回到第2步(2)中的(ⅰ)重新開始,如此反復(fù)進行,一直進行到s1,s2,…,sm從小到大排序為止,此時,算法將終止。與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:在日常緊急求助過程中,求助者在發(fā)出求助信息后,周圍的人會有應(yīng)答,因此app平臺會收到許多應(yīng)答者的應(yīng)答信息。每一條應(yīng)答信息都與一位應(yīng)答者相對應(yīng)。因此,一條應(yīng)答信息就會產(chǎn)生一個應(yīng)答者與求助者之間的距離,所有這些應(yīng)答者與求助者之間的距離隨著時間的先后與應(yīng)答信息同時到達app平臺后,就會產(chǎn)生一個應(yīng)答者與求助者之間距離的隊列。由于距離有近有遠,求助者一般總是在滿足求助要求的前提下,優(yōu)先選擇距離較近的應(yīng)答者。而當(dāng)應(yīng)答信息很多時,求助者要找到滿足求助要求且距離較近的應(yīng)答者不容易,所以本發(fā)明通過隨機序列動態(tài)比較置換排序算法和相鄰元素奇偶相錯比較排序算法,用來綜合交叉解決在日常緊急求助過程中應(yīng)答者與求助者之間的隨機距離隨機序列排序問題,app平臺通過上述兩個隨機序列排序算法對距離隊列進行排序,將排序結(jié)果及時反饋到求助者的移動智能終端上,使求助者可以及時選擇出合適的應(yīng)答者進行幫忙,使得求助者可以及時得到有效的應(yīng)對幫助,此方法提高緊急求助的及時性和有效性。附圖說明圖1為本發(fā)明基于隨機序列排序算法的日常緊急求助方法實施例的流程圖。圖2為本發(fā)明基于隨機序列排序算法的日常緊急求助方法具體實施例中求助者與應(yīng)答者在地表位置的示意圖。圖3為本發(fā)明中求助者與哥哥回應(yīng)者在地球表面的位置和經(jīng)緯度示意圖。具體實施方式附圖僅用于示例性說明,不能理解為對本專利的限制;對于本領(lǐng)域技術(shù)人員來說,附圖中某些公知結(jié)構(gòu)及其說明可能省略是可以理解的。下面結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案做進一步的說明。實施例1如圖1所示,為本發(fā)明一種基于隨機序列排序算法的日常緊急求助方法具體實施例的流程圖。參見圖1,本具體實施例一種基于隨機序列排序算法的日常緊急求助方法的具體步驟包括:s101.針對求助者移動智能終端發(fā)出的求助信息,app平臺接收應(yīng)答者的應(yīng)答信息,并根據(jù)應(yīng)答者與求助者之間的位置信息計算求助者與各個應(yīng)答者之間的距離;求助信息可以是求助者的個人信息(如姓名、性別、電話號碼等)、需要發(fā)送的求助信息文本、圖片或者視頻、求助者所處地理位置。其中求助者所處地理位置是一個實時地理信息,其可以將求助者位置直接顯示在地圖中,并能顯示求助者發(fā)出求助信號后的運動軌跡,從而實時跟蹤求助者的地理位置信息,在出現(xiàn)緊急狀況需要現(xiàn)場救助時可以及時定位到求助者的實時位置,提高救助的及時性。具體實現(xiàn)時,求助者是通過移動智能終端發(fā)出求助信息到app平臺上,app平臺接收求助者移動智能終端發(fā)出的求助信息,并且app平臺將接收到的求助信息轉(zhuǎn)發(fā)到求助者周圍的移動智能終端上,此過程中,app平臺可以根據(jù)求助者的地理位置信息定位到其周圍附近的人群,將求助的信息、圖片或者視頻發(fā)送出去。其中,所述周圍是以求助者所在位置為中心、一預(yù)定數(shù)值為半徑所構(gòu)造的圓的范圍;周圍接收到求助信息的移動智能終端可以根據(jù)實際情況選擇是否回應(yīng),若回應(yīng)則app平臺會收到應(yīng)答者的應(yīng)答信息。求助者周圍的移動智能終端是事先與app平臺連接的。回應(yīng)求助信息的應(yīng)答者指的是收到求助信息后對該求助信息給予應(yīng)答響應(yīng)的幫助者,其通過移動智能終端發(fā)出應(yīng)答信息。應(yīng)答信息包括幫助者的個人信息(如姓名、性別、電話號碼等)、應(yīng)答信息文本、圖片、視頻、幫助者所處地理位置、與求助者之間的距離等。app平臺可以收到多個不同應(yīng)答者的應(yīng)答信息。s102.app平臺將求助者與各個應(yīng)答者之間的距離進行從小到大排序,并將排序結(jié)果反饋給求助者移動智能終端。app平臺將應(yīng)答者的應(yīng)答信息以及各個應(yīng)答者與求助者之間的距離排序結(jié)果發(fā)送給求助者的移動智能終端,求助者可以根據(jù)應(yīng)答者的地理位置、最短距離、以及信息回應(yīng)內(nèi)容等按照個性喜好確定其中一位應(yīng)答者作為幫助者。具體實施過程中,在步驟s101中,求助者與n個應(yīng)答者之間的距離可以采用如下計算方式進行,具體為:記求助者為p0,n個應(yīng)答者為a1,a2,…,an,求助者p0與所示n個應(yīng)答者a1,a2,…,an之間的距離為d(p0,a1),d(p0,a2),…,d(p0,an);假設(shè)求助者p0的經(jīng)度為x0,緯度為y0,則p0在地球表面的經(jīng)度和緯度坐標為p0(x0,y0);假設(shè)這n個應(yīng)答者a1,a2,…,an在地球表面的經(jīng)度和緯度坐標分別為:a1(x1,y1),a2(x2,y2),…,an(xn,yn),其中xi和yi分別是第i個回應(yīng)者ai(xi,yi)的經(jīng)度和緯度,i=1,2,…,n;如圖2和3所示,為p0(x0,y0)與各回應(yīng)者a1(x1,y1),a2(x2,y2),…,an(xn,yn)在地表的位置示意圖。由于地球太大,而求助者p0(x0,y0)與附近各個回應(yīng)者ai(xi,yi)(i=1,2,…,n)兩者之間的距離相對就非常短了,因此可以預(yù)設(shè)一個數(shù)r,以p0(x0,y0)為圓心、r為半徑。(ⅰ)當(dāng)d(p0,ai)≤r時,近似把在同一地平線的兩者之間的連線看成是直線,采用歐氏距離公式來計算p0(x0,y0)與各個回應(yīng)者ai(xi,yi)(i=1,2,…,n)之間的距離,其計算公式為:(ii)當(dāng)某個回應(yīng)者ai(xi,yi)與p0(x0,y0)的距離超過預(yù)設(shè)的數(shù)r時,即d(p0,ai)>r時,p0(x0,y0)與各個回應(yīng)者ai(xi,yi)(i=1,2,…,n)兩者之間的距離采用如下計算公式:r是地面到地心的距離,即地球半徑。圖3給出了求助者p0(x0,y0)與各個回應(yīng)者ai(xi,yi)(i=1,2,…,n)在地球表面的位置及其經(jīng)、緯度。在步驟s102中,若在一個限定的時間內(nèi),任何一個相同的時間點或其中任何非常短的時間間隔內(nèi),沒有兩個或者兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息到達app平臺,則利用隨機序列動態(tài)比較置換排序算法對求助者與各個應(yīng)答者之間的距離進行從小到大排序;若在一個限定的時間內(nèi),在相同的一個時間點或者在非常短的時間間隔內(nèi),有兩個或者兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息到達app平臺,則利用相鄰元素奇偶相錯比較排序算法對對求助者與各個應(yīng)答者之間的距離進行從小到大排序;隨機序列動態(tài)比較置換排序法是用來解決當(dāng)救助者發(fā)出信息后,在一個限定的時間內(nèi),回應(yīng)信息是按時間先后順序逐條而來,期間任何一個相同的時間點或其中任何非常短的時間間隔內(nèi),沒有兩個或兩個以上的應(yīng)答信息同時到達,由此在app平臺產(chǎn)生的應(yīng)答者與求助者之間的距離,用變量m1,m2,…,mn來分別表示這n個應(yīng)答者與救助者之間的距離;這些距離是一些隨機動態(tài)到達的數(shù)字,將這些隨機動態(tài)的距離數(shù)字序列按照從小到大的順序進行排序。假設(shè)在一個限定的時間段內(nèi),在其中任何一個相同的時間點或其中任何非常短的時間間隔內(nèi),沒有兩個或兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息,即app平臺收到的應(yīng)答者發(fā)出的應(yīng)答信息是一個個有次序發(fā)來,不是在某一個時間點同時發(fā)來。此時動態(tài)比較置換排序算法如下:第1步:建立兩個空間大小為n+1的空隊列a[n]和b[n],如表1所示:a[0]a[1]a[2]a[3]…a[k-1]a[k]a[k+1]…a[n]b[0]b[1]b[2]b[3]…b[k-1]b[k]b[k+1]…b[n]表1空隊列a和b約定1:隊列a和b的首空間a[0]和b[0]留空,不裝元素;b[0]用來做動態(tài)元素置換過程的臨時備用空間,a[1]是隊列a的首元素空間,b[1]是隊列b的首元素空間;約定2:隊列a用來存儲原始動態(tài)數(shù)據(jù)mi(i=1,2,…,n),隊列b用來存儲經(jīng)過對動態(tài)數(shù)據(jù)mi(i=1,2,…,n)進行比較置換后得到從小到大排序的新數(shù)據(jù)序列ti(i=1,2,…,n),其中mi是第i位應(yīng)答者與求助者之間的實時距離;第2步:當(dāng)接收到第一個應(yīng)答者的應(yīng)答信息時,將產(chǎn)生第1個距離,即產(chǎn)生第1位應(yīng)答者與救助者之間的距離,用變量m1表示;讓m1直接入隊列a作為首元素,根據(jù)約定1,a[0]留空,不裝元素,所以a[1]=m1。令t1=m1,t1入隊列b作為首元素,根據(jù)約定1,b[1]=t1;如表2所示:表2第3步:(1)當(dāng)接收到第2位應(yīng)答者的應(yīng)答信息,將產(chǎn)生第2位應(yīng)答者與求助者之間的距離,用變量m2表示,讓m2入隊a作為尾元素,此時有a[2]=m2;(2)令t2=m2,讓t2入隊列b中的臨時備用空間b[0],即有b[0]=t2,如表3所示:表3(3)對隊列b,以當(dāng)前b[0]空間中的元素t2作為基準元素,與隊列b中已有元素t1作如下比較和置換的操作:1)若t2≥t1,則令b[2]=t2,此時有:b[1]≤b[2],所以隊列b中已有的元素t1、t2已按從小到大的順序排序;2)若t2≤t1,則進行如下置換操作:于是b[1]≤b[2],作如下賦值:得到t1≤t2,因此得到了隊列b中的元素t1、t2按從小到大的順序排序,如表4所示:表4第4步:(1)接收到第3位應(yīng)答者發(fā)出應(yīng)答信息,將產(chǎn)生第3位應(yīng)答者與求助者之間的距離,用變量m3表示,讓m3入隊a作為尾元素,此時有a[3]=m3;(2)令t3=m3,讓t3入隊列b中的臨時備用空間b[0],即有b[0]=t3,如表5所示:表5(3)對隊列b,以當(dāng)前b[0]空間中的元素t3作為基準元素,從隊列b中當(dāng)前的尾元素t2起,用t3與隊列b中已有元素的倒序:t2、t1之間順序作如下兩兩相鄰元素逐步比較和置換的操作:若t3≥t2,則令b[3]=t3,此時b[2]≤b[3],因為隊列b中已有的元素t2、t1是已經(jīng)排好序的,即t1≤t2,亦即b[1]≤b[2],所以有b[1]≤b[2]≤b[3],于是有t1≤t2≤t3,所以得到隊列b中的元素t1,t2,t3按從小到大的順序排序;若t3<t2,則需要進一步進行如下比較和置換;若t3≥t1,則有t1≤t3<t2。因為b[1]=t1,b[2]=t2,b[0]=t3,所以b[1]空間中的元素t1不動,需要對t2,t3及其所在的隊列空間進行如下置換操作:于是得到b[2]<b[3],作如下賦值:于是得到t2<t3,因此t1≤t2<t3,得到b[1]≤b[2]<b[3],這說明隊列b中的元素t1,t2,t3按從小到大的順序排序;若t3<t1,則有t3<t1≤t2,因為b[1]=t1,b[2]=t2,b[0]=t3,所以需要進行如下置換操作:于是得到b[1]<b[2]≤b[3],作如下賦值:于是得到t1≤t2<t3,此時隊列b中的元素t1,t2,t3已按從小到大的順序排序,如表6所示:表6第5步:如此繼續(xù)進行,假設(shè)一直進行到在求助者發(fā)出求助信息號后,已有k位應(yīng)答者發(fā)送應(yīng)答信息,其中第i位應(yīng)答者與求助者之間的距離為mi,mi入隊列a,并且按照發(fā)布信息的時間前后順序入隊,相應(yīng)有一個序列ti為mi的一種新排列,滿足從小到大的順序排序,即t1≤t2≤…≤tk,i=1,2,…,k,如表7所示:表7當(dāng)?shù)趉+1位應(yīng)答者發(fā)出應(yīng)答信息時,將產(chǎn)生第k+1個距離,即第k+1位應(yīng)答者與求助者之間的距離,用變量mk+1表示。讓mk+1入隊a作為尾元素,此時有a[k+1]=mk+1。令tk+1=mk+1,讓tk+1入隊列b中的臨時備用空間b[0],即有b[0]=tk+1,如表8所示:表8對隊列b,以當(dāng)前b[0]空間中的元素tk+1作為基準元素,從隊列b中當(dāng)前的尾元素tk起,用與隊列b中已有元素的倒序:tk,tk-1,…,t3,t2,t1之間順序作如下兩兩相鄰元素逐步比較和置換的操作:若tk+1≥tk,則令b[k+1]=tk+1,此時有b[k]≤b[k+1],因為隊列b中已有的元素t1,t2,t3,…,tk-1,tk是已經(jīng)排好序的,即t1≤t2≤t3≤…≤tk-1≤tk,亦即b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k],所以b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k]≤b[k+1],即有t1≤t2≤t3≤…≤tk-1≤tk≤tk+1,于是得到隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序。若tk+1<tk,則需要進一步進行如下比較和置換,若tk+1≥tk-1,則有tk-1≤tk+1<tk。因為b[k-1]=tk-1,b[k]=tk,b[0]=tk+1,所以讓b[k-1]空間中的元素tk-1不動,需要對tk,tk+1及其所在的隊列空間進行如下置換操作:于是得到b[k]<b[k+1],作如下賦值:于是得到tk<tk+1,因此t1≤t2≤t3≤…≤tk-1≤tk<tk+1,得到b[1]≤b[2]≤b[3]≤…≤b[k-1]≤b[k]<b[k+1],這說明隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序。若tk+1<tk-1,則有,tk+1<tk-1≤tk,因為b[k-1]=tk-1,b[k]=tk,b[0]=tk+1,所以需要進行如下置換操作:于是得到b[k-1]≤b[k]≤b[k+1],作如下賦值:于是得到tk-1<tk≤tk+1,因此t1≤t2≤t3≤…≤tk-1≤tk<tk+1,得到b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1],這說明,隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序,如表9所示:表9如此繼續(xù)進行,一直到tk+1<t2,并按照以上的方法得到t2,t3,…,tk-1,tk,tk+1已經(jīng)按從小到大的順序排序。于是,只需要最后比較tk+1和t1的大小。令b[0]=tk+1,討論如下兩情形:(ⅰ)假如tk+1≥t1,由于t2≤t3≤…≤tk,所以t1≤tk+1≤t2≤t3≤…≤tk。又因為b[k]=tk,b[k-1]=tk-1,…,b[2]=t2,b[1]=t1,故可作如下置換:則有b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1],然后再作如下賦值:則有t1≤t2≤t3≤…≤tk-1≤tk<tk+1,于是隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序;(ii)假如tk+1<t1,由于t1≤t2≤t3≤…≤tk,所以tk+1<t1≤t2≤t3≤…≤tk。又因為b[k]=tk,b[k-1]=tk-1,…,b[2]=t2,b[1]=t1,故可作如下置換:則有b[1]≤b[2]≤b[3]≤…≤b[k-1]<b[k]≤b[k+1],然后再作如下賦值:則有t1≤t2≤t3≤…≤tk-1≤tk<tk+1,于是隊列b中的元素t1,t2,t3,…,tk-1,tk,tk+1按從小到大的順序排序;應(yīng)答者的數(shù)量以及應(yīng)答者進行應(yīng)答響應(yīng)的時間是不定的,那么對于求助者而言,應(yīng)答者的數(shù)量n以及接收到應(yīng)答信息的時間均屬于一個隨機序列,則產(chǎn)生的求助者與應(yīng)答者之間的距離序列也是一個隨機序列,而且是實時的隨機序列。上述排序算法采用兩個隊列對距離序列這一實時隨機序列進行排序,利用隊列a對距離值按照產(chǎn)生時間進行存儲和排序,隊列b通過動態(tài)排序方法對實時產(chǎn)生的距離值進行從小到大排序,解決了實時動態(tài)隨機序列的從小到大排序問題,使得求助者在做出一對一交互對話的選擇之前都能夠?qū)崟r得到求助者與各應(yīng)答者之間的距離的排序序列,從而給求助者提供準確的距離信息。如果在相同的一個時間點或在非常短的時間間隔內(nèi),出現(xiàn)有兩個或兩個以上的應(yīng)答者同時發(fā)出應(yīng)答信息,則采用相鄰元素奇偶相錯比較排序法進行排序。相鄰元素奇偶相錯比較排序法是用來解決當(dāng)求助者發(fā)出信息后,在同一個時間內(nèi)或非常短的時間間隔內(nèi),同時到達多位應(yīng)答者的應(yīng)答信息,由此在app平臺同時產(chǎn)生很多個的距離。雖然這些距離也是隨機到達的數(shù)字,但由于它們是同時到達app平臺的,到達后是一個可觀的隨機靜態(tài)數(shù)字,將這些隨機靜態(tài)的距離數(shù)字序列按照從小到大的順序進行排序,相鄰元素奇偶相錯比較排序法具體為:假設(shè)在某一個相同的時間點或非常短的時間間隔內(nèi),一共有m位應(yīng)答者同時發(fā)送應(yīng)答信息到達app平臺上,用變量s1,s2,…,sm來表示這m位應(yīng)答者與求助者之間和距離;第1步:由于m位應(yīng)答者與求助者之間的距離s1,s2,…,sm是在同一個時間或幾乎同一個時間產(chǎn)生的,所以s1,s2,…,sm的初始形態(tài)按任意一種序列排序,假設(shè)該序列最初就按s1,s2,…,sm排序;第2步,下面分m為偶數(shù)、奇數(shù)兩種不同的情形分別進行討論(5)若m為偶數(shù)(ⅰ)將序列s1,s2,…,sm從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1)其中,i=1,2,…,m-1,由于m是偶數(shù),所以剛好組成組兩兩相鄰的數(shù)對;(ii)對每一組數(shù)對(si,si+1)中的兩個數(shù)進行大小比較⑤若si≤si+1,則保持該數(shù)對的順序不變;⑥若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過上述比較從左到右對相鄰兩個數(shù)大小的處理,得到s1,s2,…,sm序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止,否則轉(zhuǎn)入下一步(ⅲ);(ⅲ)對序列s1,s2,…,sm,分兩步進行:⑤將第1個元素s1和最后一個元素sm組成數(shù)對,然后比較s1和sm的大??;若s1≤sm,則保持s1和sm的順序不變;若s1>sm,則調(diào)換s1和sm的位置,使sm做成該序列的第1個元素,s1做成該序列的最后一個元素;⑥從第2個元素s2到倒數(shù)第2個元素sm-1,從左到右將兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中i=2,3,…,m-2,由于m為偶數(shù),所以剛好組成組兩兩相鄰的數(shù)對;(iv)對每一組數(shù)對(si,si+1)(i=2,3,…,m-2)中的兩個數(shù)進行大小比較⑦若si≤si+1,則保持該數(shù)對的順序不變;⑧若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(iv)從左到右對相鄰兩個數(shù)大小的處理,得到s1≤sm,且s2,s3,…,sm-1序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序。如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止,否則回到第2步(1)中的(ⅰ)重新開始,如此反復(fù)進行,一直進行到s1,s2,…,sm從小到大排序為止,此時,算法將終止;(6)若m為奇數(shù)(ⅰ)將序列s1,s2,…,sm從第1個元素s1起,從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中,i=1,2,…,m-2,由于m是奇數(shù),所以該序列組成組兩兩相鄰的數(shù)對,sm為剩余元素,無元素可組對;(ii)對每一組數(shù)對(si,si+1)(i=1,2,…,m-2)中的兩個數(shù)進行大小比較①若si≤si+1,則保持該數(shù)對的順序不變;⑨若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(ii)從左到右對相鄰兩個數(shù)大小的處理,得到s1,s2,…,sm-1序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm-1,sm已經(jīng)從小到大排序,則算法終止;否則轉(zhuǎn)入下一步(ⅲ);(ⅲ)保留第1個元素s1不動,從第2個元素s2起,從左到右兩兩相鄰的元素做成一組數(shù)對(si,si+1),其中i=2,3,…,m-1,由于m為奇數(shù),所以可組成組兩兩相鄰的數(shù)對;⑤若si≤si+1,則保持該數(shù)對的順序不變;⑥若si>si+1,則調(diào)換該數(shù)對的順序,使該數(shù)對左邊的數(shù)小于右邊的數(shù);經(jīng)過(ⅲ)從左到右對相鄰兩個數(shù)大小的處理,得到s2,s3,…,sm序列從左到右兩兩相鄰的元素已經(jīng)按照從小到大排序;如果此時整個序列s1,s2,…,sm已經(jīng)從小到大排序,則算法終止;否則回到第2步(2)中的(ⅰ)重新開始,如此反復(fù)進行,一直進行到s1,s2,…,sm從小到大排序為止,此時,算法將終止。假如在求助者發(fā)出求助信息的一個時間段里,有一些時間點或非常短的時間間隔里只有一個應(yīng)答者發(fā)出應(yīng)答信息,而還有一些時間點或非常短的時間間隔里同時有多個(至少有二個以上)應(yīng)答者發(fā)出應(yīng)答信息。為了便于表述,把“非常短的時間間隔”就看成是一個時間點,這樣在求助者發(fā)出求助信息后就可能出現(xiàn)如下4種情形:情形1:從第一個時間點開始,有一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息;然后緊接著的后面一個時間點,該一個時間點同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;情形2:從第一個時間點開始,有一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息;然后緊接著的后面多個連續(xù)時間點(至少有二個以上連續(xù)時間點),該多個連續(xù)時間點中每一個時間點同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;情形3:第一個時間點出現(xiàn)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;從第二個時間點起,緊接著的后面一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息;情形4:從第一個時間點開始,有多個連續(xù)時間點(至少二個以上連續(xù)時間點)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;然后緊接著的后面一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息。由于在求助者發(fā)出求助余下的時間里,無論應(yīng)答者是以何種方式出現(xiàn),即無論是在一個時間點只有一個應(yīng)答者發(fā)出應(yīng)答信息,還是在一個時間點同時有多個應(yīng)答者(指至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息,或是這兩種應(yīng)答情形交錯地出現(xiàn),都極易知道:此后應(yīng)答者的應(yīng)答情形都將是前面已出現(xiàn)過的任意一種應(yīng)答情形而已,即是前面應(yīng)答情形的隨機重復(fù),沒有產(chǎn)生新的應(yīng)答情景。因此,此后應(yīng)答者的應(yīng)答情形對算法的實現(xiàn)沒有產(chǎn)生任何影響,故無須另行研究。為此,我們主要解決:(1)從第一個時間點起有一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息;然后緊接著的后面一個時間點,該一個時間點同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;(2)第一個時間點出現(xiàn)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;從第二個時間點起,緊接著的后面一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息;(3)第一個時間點出現(xiàn)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;第二個時間點也出現(xiàn)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息;以上三種情形解決的方法都是:如果有一個或多個連續(xù)時間點(二個連續(xù)時間點以上),每個時間點都只有一個應(yīng)答者發(fā)出應(yīng)答信息,則采用“隨機序列動態(tài)比較置換排序算法”的排序方法進行從小到大排序。如果一個時間點出現(xiàn)同時有多個應(yīng)答者(至少有二個以上應(yīng)答者)發(fā)出應(yīng)答信息,則采用“相鄰元素奇偶相錯比較排序法”的排序方法進行從小到大排序。因此,這三種情形無論是哪一種都會出現(xiàn)這種情形:前后有兩個已經(jīng)從小到大排序的隊列,將它們進行首尾相接,然后組合成一個新的隊列,我們要對該新的隊列進行從小到大排序。為此,我們提出基于二個已排隊序列的多值連續(xù)比較交叉插入排序法。不妨假設(shè)前面的隊列有k(k≥1為正整數(shù),下同)個數(shù)(都是應(yīng)答者與求助者的距離):u1,u2,…,uk,并且已經(jīng)從小到大排序,即有u1≤u2≤…≤uk。后面的隊列有l(wèi)(l≥2為正整數(shù),下同)個數(shù)(也都是應(yīng)答者與求助者的距離),v1,v2,…,vl,也已經(jīng)從小到大排序,即有v1≤v2≤…≤vl,將這兩個隊列進行首尾相接,組合成一個新的隊列為:u1,u2,…,uk,v1,v2,…,vl。下面我們將提出“基于二個已排隊序列的多值連續(xù)比較交叉插入排序法”來解決新組合的隊列u1,u2,…,uk,v1,v2,…,vl,其從小到大的排序問題。基于二個已排隊序列的多值連續(xù)比較交叉插入排序法如下:建立列隊c[k+l],其中c[0]不裝元素,留來做數(shù)據(jù)交換過程的備用空間。先讓u1,u2,…,uk依次入隊c,于是有:c[1]=u1,c[2]=u2,…,c[k]=uk;接著讓:v1,v2,…,vk依次入隊c,于是有:c[k+1]=v1,c[k+2]=v2,…,c[k+l]=vl。因此,我們得到一新的隊列:c[1]=u1,c[2]=u2,…,c[k]=uk,c[k+1]=v1,c[k+2]=v2,…,c[k+l]=vl,如表10所示。c[0]c[1]c[2]...c[k-1]c[k]c[k+1]c[k+1]...c[k+1-1]c[k+1]u1u2…uk-1ukv1v2…vk+l-1vk+l表10定義兩個指針i和j,其中1≤i≤j-1,i+1≤j≤k+l。(i)起初令i=k,j=i+1,比較c[i]和c[j]的大?、偃绻鹀[i]≤c[j],因為c[i]=c[k]=uk,c[j]=c[i+1]=c[k+1]=v1,所以有uk≤vl。又因為u1≤u2≤…≤uk,v1≤v2≤…≤vl,因此有u1≤u2≤…≤uk≤v1≤v2≤…≤vl,即c[1]≤c[2]≤…≤c[k-1]≤c[k]≤c[k+1]≤c[k+2]…≤c[k+l-1]c[k+l]所以,隊列c中的元素已經(jīng)排好序。②如果c[i]>c[j],則令j=j(luò)+1(ii)重復(fù)(i)中的②一直進行下去,直到存在某一個t(k+1≤t≤k+l),使當(dāng)只有j=t時有c[i]≤c[j]=c[t];而當(dāng)i+1≤j<t時,恒有c[i]>c[j]。于是,作如下置換:此時得到的隊列c中的元素變化如表11所示。c[0]c[1]c[2]...c[k-1]c[k]c[k+1]...c[t-2]c[t-1]c[t]...c[k+l]uku1u2…uk-1v1v2…vt-1vt…vk+l表11隊列c中最后的元素排列如表12所示。c[0]c[1]c[2]...c[k-1]c[k]c[k+1]...c[t-2]c[t-1]c[t]...c[k+l]u1u2…uk-1v1v2…vt-1ukvt…vk+l表12(iii)令i=i-1,j=i+1,然后一直重復(fù)(i)和(ii);(iv)重復(fù)(iii),并且一直進行到i=1為止,算法結(jié)束。此時,c中得到一個新的隊列元素:w1,w2,…,wk,wk+1,wk+2,…,wk+1,其數(shù)據(jù)大小已經(jīng)按照從小到大排序,即:c[1]≤c[2]≤…≤c[k]≤c[k+1]≤c[k+2]≤…≤c[k+l],亦即:w1≤w2≤…≤wk≤wk+1≤wk+2≤…≤wk+l,如表13所示。c[0]c[1]c[2]...c[k-1]c[k]c[k+1]c[k+1]...c[k+1-1]c[k+1]w1w2…wk-1wkwk+1wk+1…wk+l-1wk+l表13這些新的隊列元素:w1,w2,…,wk,wk+1,wk+2,…,wk+l是原來隊列c中初始的數(shù)據(jù)排列u1,u2,…,uk,v1,v2,…,vl中的一個新排列。相同或相似的標號對應(yīng)相同或相似的部件;附圖中描述位置關(guān)系的用于僅用于示例性說明,不能理解為對本專利的限制;顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。當(dāng)前第1頁12