面試經(jīng)常提問(wèn)到的Java數(shù)組排序問(wèn)題

面試經(jīng)常提問(wèn)到的Java數(shù)組排序問(wèn)題

長(zhǎng)沙達(dá)內(nèi)教育      2022-04-19 05:00:01     9

面試經(jīng)常提問(wèn)到的Java數(shù)組排序問(wèn)題,  數(shù)組冒泡排序  假設(shè)有5個(gè)數(shù)字12,21,6,8,15在一個(gè)int類(lèi)型的數(shù)組中,要求按從小到大排序輸出,采用冒泡排序算法實(shí)現(xiàn)排序

課程價(jià)格 請(qǐng)咨詢(xún)

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


  數(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)行查找程序如下:



  以上就是長(zhǎng)沙達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“面試管經(jīng)常提問(wèn)到的Java數(shù)組排序問(wèn)題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。


相關(guān)推薦


最新最全java面試題及答案(初級(jí)到高級(jí))


史上最全的中高級(jí)JAVA工程師面試題及答案匯總


Java高級(jí)開(kāi)發(fā)工程師面試題


2019史上最全java面試題題庫(kù)大全800題


哪有資深java工程師面試題


培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。