亚洲精品免播放器在线观看-久久啊-久久观看视频-日韩精品亚洲专区在线电影不卡-在线观看免费a∨网站-在线观看毛片网站

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

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

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

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

是升序排序。

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

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

選擇排序法

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

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

排序實例初始關鍵字[4938659776132749]

第一次排序后,13[38659776492749]

第二次排序后,1327[659776493849]

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

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

第五遍排序后,1327384949[976576]

第六遍排序后,132738494965[9776]

第七次排序后,13273849496576[97]

最終排名結果1327384949657697

Java實現代碼如下:

驗證了結果的正確性。

氣泡法

原則

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

Java實現代碼:

插入排序

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

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

Java示例代碼如下:

殼牌石油公司排序

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

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

所以它們應該是這樣的:

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

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

快速排序思路:從待排序的記錄序列中選擇一條記錄(通常是第一條記錄)作為支點,然后將其他關鍵字小于k1的記錄移到前面,關鍵字大于k1的記錄移到后面。結果,要排序的序列被分成兩個子表,最后在分割線的位置找到帶有關鍵字k1的記錄。算法步驟:假設要劃分的序列為r[left],R[left1],...r[right],實現上面的除法過程,可以設置兩個指針I和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]左邊所有記錄的關鍵字不大于基準記錄的關鍵字,而r[i]右邊所有記錄的關鍵字不小于基準記錄的關鍵字。最后,將基準記錄移動到r[i],并完成一個劃分過程。最后,通過遞歸調用排序函數對子表進行排序。Java示例代碼如下:

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

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 国产在线高清不卡免费播放 | 欧美精品一区二区三区四区 | 激情欧美一区二区三区 | 高清 国产 日韩 欧美 | 国产一区 在线播放 | 99热这里只有精品一区二 | 久久精品国产一区二区 | 久操精品在线观看 | 欧美日韩一二三区 | 欧美日本日韩aⅴ在线视频 欧美日韩91 | 日韩免费视频在线观看 | 亚洲国产日韩欧美 | 欧美综合国产精品日韩一 | 青草伊人网 | 萌白酱喷水 | 一级毛片不收费 | 九九久久国产精品大片 | 国产高清在线播放免费观看 | 国产手机视频在线观看 | 成人爽a毛片在线视频 | 欧美精品一区二区三区免费 | 日本欧美一区二区三区 | 国产99视频精品免费观看7 | 亚洲国产精品欧美日韩一区二区 | 精品亚洲性xxx久久久 | 最新国产网址 | 一区二区三区在线 | 精品国产一级在线观看 | 亚洲国产精品免费在线观看 | 国产一级高清免费观看 | 日韩中文字幕第一页 | 国产视频一| 日韩成人小视频 | 国产日产高清欧美一区二区三区 | 欧美色综合图区 | 欧美日韩精品一区二区三区四区 | 欧美一区二区三区不卡免费 | 亚洲免费福利 | 黄色毛片免费在线观看 | 欧美激情hd| 欧美亚洲精品在线 |