更新時(shí)間:2020-02-17 13:31:03 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2651次
數(shù)組冒泡排序
假設(shè)有5個(gè)數(shù)字12,21,6,8,15在一個(gè)int類(lèi)型的數(shù)組中,要求按從小到大排序輸出,采用冒泡排序算法實(shí)現(xiàn)排序。
冒泡排序的算法:
首先從數(shù)組的最左邊開(kāi)始,取出下標(biāo)為0的數(shù)據(jù)和下標(biāo)為1的數(shù)據(jù)進(jìn)行比較,如果左邊的數(shù)據(jù)大于右邊的數(shù)據(jù),則進(jìn)行交換,否而不進(jìn)行交換。
接下來(lái)右移一個(gè)位置,取出下標(biāo)為1數(shù)據(jù)和下標(biāo)為2的數(shù)據(jù)進(jìn)行比較,如果左邊的數(shù)據(jù)大于右邊的數(shù)據(jù),則進(jìn)行交換,否而不進(jìn)行交換。以此類(lèi)推,最終將最大的數(shù)移動(dòng)到最右邊,就像氣泡冒出水面,這就是冒泡排序算法。
使用冒泡排序?qū)nt類(lèi)型的一維數(shù)組進(jìn)行排序程序如下:
冒泡排序效率較低,因?yàn)槊恳淮伪容^都可能發(fā)生數(shù)據(jù)的移動(dòng)。
選擇排序
選擇排序?qū)γ芭菖判蜻M(jìn)行了改進(jìn),使交換次數(shù)減少,但比較次數(shù)仍然沒(méi)有減少。假設(shè)有6個(gè)數(shù)字12,21,3,45,7,1在一個(gè)int類(lèi)型的數(shù)組中,要求按從小到大排序輸出,采用選擇排序。
選擇排序的算法:
先從左端開(kāi)始,找到下標(biāo)為0的元素,然后和后面的元素依次比較,如果找到了比下標(biāo)0小的元素,那么在使用此元素,再接著依次比較,直到比較完成所有的元素,最后把最小的元素和下標(biāo)為0的元素位置交換。第二次循環(huán)從下標(biāo)為1的元素開(kāi)始,如果找到比下標(biāo)為1的元素還小的元素,進(jìn)行交換。
數(shù)組相關(guān)工具類(lèi)Arrays
Sun提供了針對(duì)數(shù)組操作的工具類(lèi)java.util.Arrays。如排序、二分查找等方法。
對(duì)int類(lèi)型的數(shù)組進(jìn)行排序然后使用二分法對(duì)數(shù)組元素進(jìn)行查找程序如下:
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“面試管經(jīng)常提問(wèn)到的Java數(shù)組排序問(wèn)題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)推薦
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743