欧美色视频免费_2018亚洲男人天堂_好骚综合在线_久久久久久久久国产_日韩精品久久久久久久九岛_国产成年人视频

推廣 熱搜: 廣場  Java  app  Word  營業(yè)  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

java學習筆記之數(shù)組排序和查找 在Java中如何高效判斷數(shù)組中是否包含某個元素?

   2023-04-28 企業(yè)服務(wù)招財貓200
核心提示:給出的信息太少,比如數(shù)組類型是什么?數(shù)據(jù)分布是怎樣的?給個通用的做法:把數(shù)組按順序排好,二進制找。是升序排序。比如一個塑料I數(shù)組,原來的順序是,9,8,7,6,5,4,3,2,1。使用()后,得到的結(jié)

給出的信息太少,比如數(shù)組類型是什么?數(shù)據(jù)分布是怎樣的?給個通用的做法:把數(shù)組按順序排好,二進制找。

是升序排序。

比如一個塑料I數(shù)組,原來的順序是,9,8,7,6,5,4,3,2,1。使用()后,得到的結(jié)果是1,2,3,4,5,6,7,8,9。

如果需要改變排序,就改成降序,需要改變排序(要排序的內(nèi)容,())。

選擇排序法

N個記錄文件的直接選擇排序可以得到n-1個直接選擇排序后的有序結(jié)果:①初始狀態(tài):無序區(qū)為R[1...n],并且有序區(qū)域是空的。②在第一次排序中,從無序區(qū)域R[1]中選擇具有最小關(guān)鍵字的記錄R[k]..n],并且它與無序區(qū)域中的第一個記錄R[1]交換,使得R[1..1]和R[2..n]分別成為增加一條記錄的新有序區(qū)域和減少一條記錄的新無序區(qū)域。.....(3)第一次排序。

在第I個排序開始時,當前有序區(qū)域和無序區(qū)域是R[1..i-1]和R(i..n)分別為。這個排序從當前無序區(qū)中選擇關(guān)鍵字最小的記錄R[k],與無序區(qū)中的第一條記錄R交換,使R[1...I]和R分別成為增加一條記錄的新有序區(qū)和減少一條記錄的新無序區(qū)。

排序?qū)嵗跏缄P(guān)鍵字[4938659776132749]

第一次排序后,13[38659776492749]

第二次排序后,1327[659776493849]

在第三遍排序后,132738[9776496549]

在第四遍排序后,13273849[76976549]

第五遍排序后,1327384949[976576]

第六遍排序后,132738494965[9776]

第七次排序后,13273849496576[97]

最終排名結(jié)果1327384949657697

Java實現(xiàn)代碼如下:

驗證了結(jié)果的正確性。

氣泡法

原則

冒泡排序算法的工作如下:比較相鄰的元素。如果第一個比第二個大,就把它們換了。對每對相鄰的元素做同樣的工作,從第一對到最后一對。此時,最后一個元素應(yīng)該是最大的數(shù)字。對除最后一個元素之外的所有元素重復上述步驟。每次對越來越少的元素繼續(xù)重復上述步驟,直到?jīng)]有要比較的數(shù)字對。算法分析算法穩(wěn)定性冒泡排序是將小元素前移或大元素后移。比較是兩個相鄰元素的比較,交換也發(fā)生在這兩個元素之間。所以,如果兩個元素相等,我認為你贏了。;不要厭倦再次交換它們;如果兩個相等的元素不相鄰,即使通過之前的兩兩交換相鄰,此時也不會交換,所以相同元素的順序沒有改變,所以冒泡排序是一種穩(wěn)定的排序算法。

Java實現(xiàn)代碼:

插入排序

插入排序的算法描述是一種簡單直觀的排序算法。它的工作原理是構(gòu)造一個有序序列,在排序后的序列中從后向前掃描無序數(shù)據(jù),找到對應(yīng)的位置并插入。在插入排序的實現(xiàn)中,通常采用原地排序(即只有O(1)額外空間的排序),所以在從后向前掃描的過程中,需要反復地將排序后的元素逐步向后移動,為最新的元素提供插入空間。

算法描述一般來說,插入排序是通過就地在數(shù)組上實現(xiàn)的。具體算法描述如下:從第一個元素開始,可以認為這個元素已經(jīng)排序取出下一個元素,在排序后的元素序列中從后向前掃描。如果這個元素(已排序)大于新元素,將其移動到下一個位置并重復步驟3,直到找到已排序元素小于或等于新元素的位置,然后重復步驟2-5。如果比較操作的成本大于交換操作的成本,可以采用二分搜索法方法來減少比較操作的次數(shù)。這種算法可以看作是插入排序的一種變體,稱為二分搜索法排序。

Java示例代碼如下:

殼牌石油公司排序

Hill排序通過將所有比較的元素分成幾個區(qū)域來提高插入排序的性能。這允許一個元素一次向它的最終位置邁出一大步。然后算法采取越來越小的步驟進行排序,算法的最后一步是普通的插入排序,但是到了這一步,要排序的數(shù)據(jù)就排列的差不多了(此時插入排序更快)。假設(shè)在一個按升序排序的數(shù)組的末尾有一個非常小的數(shù)據(jù)。如果使用復雜度為O(n2)的排序(冒泡排序或插入排序),可能需要n次比較和交換才能將數(shù)據(jù)移動到正確的位置。但是,希爾排序會以較大的步長移動數(shù)據(jù),因此小數(shù)據(jù)只需幾次比較和交換就可以到達正確的位置。更好地理解Hill排序?qū)崿F(xiàn):將數(shù)組列在一個表中,并對列進行排序(按插入排序)。重復此過程,但每次使用更長的列。最后,整個表格只有一列。將數(shù)組轉(zhuǎn)換成表格的目的是為了更好地理解這個算法。算法本身只對原始數(shù)組進行排序(通過增加索引的步長,比如用istep_size代替I)。

例如,假設(shè)有這樣一組數(shù)字[13149433822559946523452773253910],如果我們以步長5開始排序,我們可以通過將這個列表放在一個有5列的表中來更好地描述算法。

所以它們應(yīng)該是這樣的:

然后我們對每一列進行排序:當上述四行數(shù)字按順序連接在一起時,我們得到:[101473252313279433392594658245]。這時10已經(jīng)移動到正確的位置,然后分3步排序:排序后變成:最后分1步排序(此時是簡單的插入排序)。

在實際使用過程中,排序的數(shù)據(jù)絕對不只是十個,而是以上的思路。其實排序只是插入排序的一種優(yōu)化。

快速排序思路:從待排序的記錄序列中選擇一條記錄(通常是第一條記錄)作為支點,然后將其他關(guān)鍵字小于k1的記錄移到前面,關(guān)鍵字大于k1的記錄移到后面。結(jié)果,要排序的序列被分成兩個子表,最后在分割線的位置找到帶有關(guān)鍵字k1的記錄。算法步驟:假設(shè)要劃分的序列為r[left],R[left1],...r[right],實現(xiàn)上面的除法過程,可以設(shè)置兩個指針I(yè)和J,它們的初始值分別是左和右。首先將參考記錄r[left]移動到變量X中,變量X為r[left],即r[i]相當于一個空單元格,然后重復下面兩個掃描過程,直到I和J相遇。直到r[j]。key(2)i從左向后掃描,直到r[i],將r[i]移動到空單元格r[j],此時r[i]相當于空單元格。當I和J相遇時,r[i](或r[j])相當于一個空單元格,r[i]左邊所有記錄的關(guān)鍵字不大于基準記錄的關(guān)鍵字,而r[i]右邊所有記錄的關(guān)鍵字不小于基準記錄的關(guān)鍵字。最后,將基準記錄移動到r[i],并完成一個劃分過程。最后,通過遞歸調(diào)用排序函數(shù)對子表進行排序。Java示例代碼如下:

歸并排序歸并排序是一種基于歸并運算的有效排序算法。這個算法是分而治之的一個非常典型的應(yīng)用。值得注意的是,歸并排序是一種穩(wěn)定的排序方法。合并有序子序列以獲得完全有序的序列;也就是說,首先對每個子序列進行排序,然后對子序列段進行排序。如果兩個有序表合并成一個有序表,稱為雙向合并。歸并操作歸并操作(也叫歸并算法)是指將兩個順序序列合并成一個順序序列的方法。如果有系列(6,202,100,301,38,8,1)初始狀態(tài):6,202,100,301,38,8,1第一次合并后:{6,202},{100,301},{8,38},{1},比較次數(shù):3;第二次合并后:{6,100,202,301},{1,8,38},比較次數(shù):4;第三次合并后:{1,6,8,38,100,202,301},比較次數(shù):4;對比總數(shù)為:34411;倒數(shù)是14;算法對歸并操作的工作原理描述如下:第一步:申請一個大小為兩個排序序列之和的空間,用來存放歸并后的序列;步驟2:設(shè)置兩個指針,其初始位置分別為兩個排序序列的起始位置;第三步:比較兩個指針所指向的元素,選擇一個相對較小的元素放入合并空間,將指針移動到下一個位置重復第三步,直到一個指針超過序列的末尾,直接復制另一個序列的所有剩余元素。

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  使用協(xié)議  |  版權(quán)隱私  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  積分換禮  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 日本一区二区视频在线 | 三级视频网站 | 91精品国产成人 | 亚洲福利| 黄色一级片在线免费观看 | 高潮视频网站 | 国产一二视频 | 中文字幕国产在线 | 日本欧美三级 | 日韩一页| 欧美视频网 | 国产小视频在线播放 | 午夜精品久久久久久久久久久久久 | 久久久精品一区二区三区 | 亚洲一区二区av | 久久99精品久久久久久园产越南 | 久久h | 97精品视频在线观看 | 黄色三级电影网站 | 日本最新黄色网址 | 欧美日韩一区二区三区 | 污污的网站在线观看 | 国产精品久久久久久吹潮 | 日韩中文在线观看 | 亚洲成av人片在线观看无码 | 激情五月综合 | 欧美亚洲高清 | 日韩a一级 | 国产精品一区二区三区在线 | 国产在线一区二区三区视频 | 亚洲欧美日韩一区 | 日韩一区二区三区视频在线观看 | 国产精品久久久久久久久久新婚 | 久久久精品网 | www视频在线观看 | 看片日韩| 久久99久久精品 | 日韩在线播放av | 久久精品免费 | 蜜桃av鲁一鲁一鲁一鲁 | 久久中文字幕一区二区 |