如何對(duì)java數(shù)組排序

如何對(duì)java數(shù)組排序

長(zhǎng)沙達(dá)內(nèi)教育      2022-04-29 17:42:01     7

如何對(duì)java數(shù)組排序,關(guān)于java編程的基礎(chǔ)知識(shí)(比如基本算法、數(shù)據(jù)結(jié)構(gòu)等)在前面已經(jīng)介紹過(guò)了,相信大家也都有學(xué)習(xí),java數(shù)組也是java零基礎(chǔ)的新手朋友

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

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

詳細(xì)介紹

關(guān)于java編程的基礎(chǔ)知識(shí)(比如基本算法、數(shù)據(jù)結(jié)構(gòu)等)在前面已經(jīng)介紹過(guò)了,相信大家也都有學(xué)習(xí),java數(shù)組也是java零基礎(chǔ)的新手朋友們需要學(xué)習(xí)的基礎(chǔ)知識(shí),下面我們一起來(lái)學(xué)習(xí)java數(shù)組排序的知識(shí),了解怎么樣用java算法對(duì)數(shù)組排序。

要想對(duì)數(shù)值型數(shù)組進(jìn)行排序,可以使用Arrays類中的sort方法:

int[] a= new int[10000];

...

Arrays.sort(a)

這個(gè)方法使用了優(yōu)化的快速排序算法??焖倥判蛩惴▽?duì)于大多數(shù)數(shù)據(jù)集合來(lái)說(shuō)都是效率比較高的,Arrays類還提供了幾個(gè)使用起來(lái)很便捷的方法。

下面例子中的程序?qū)a(chǎn)生一個(gè)抽獎(jiǎng)游戲中的隨機(jī)數(shù)值組合。

假如抽獎(jiǎng)是“從49個(gè)數(shù)值中抽取6個(gè)”,那么,程序可能的輸出結(jié)果為:

要想選擇這樣一個(gè)隨機(jī)的數(shù)值集合,就要首先將數(shù)值1, 2, ...,n存入數(shù)組numbers中:

int[] numbers= new int[n];

for(inti =0;i

numbers[i] = i + 1;

而用第二個(gè)數(shù)組存放抽取出來(lái)的數(shù)值:int[]result=new int[k];

現(xiàn)在,就可以開(kāi)始抽取k個(gè)數(shù)值了。Math.rando方法將返回一個(gè)0-1之間(含0、不含1)的隨機(jī)浮點(diǎn)數(shù)。用n 乘以這個(gè)浮點(diǎn)數(shù),就可以得到從0-n-1之間的一個(gè)隨機(jī)數(shù)。

int r =(int)(Math.random()*n;

下面將result的第i個(gè)元素設(shè)置為numbers[r]存放的數(shù)值,最初就是r本身。但正如所看到的那樣,

numbers數(shù)組的內(nèi)容在每一次抽取之后都會(huì)發(fā)生變化。

result[i] = numbers[r];因?yàn)樗谐楠?jiǎng)的數(shù)值不能一樣,所以必須確保不會(huì)再次抽取到那個(gè)數(shù)值。因此,這里使用數(shù)組中的最后一個(gè)數(shù)值改寫number[r],并將n減1 。

numbers[r]= numbers[n - 1];

n--;

關(guān)鍵在于每次抽取的都是下標(biāo),而不是實(shí)際的值。下標(biāo)指向(point into)包含尚未抽取過(guò)的數(shù)組元素。

在抽取了k個(gè)數(shù)值之后,就可以對(duì)result數(shù)組進(jìn)行排序了,這樣使得輸出效果更加清晰:

Arrays.sort(result);

for(int r:result)

System.out.println(r);

• static void sort(type[] a)

使用優(yōu)化的快速排序算怯對(duì)數(shù)組進(jìn)行排序。

參數(shù):a 一個(gè)類型為int、long、short 、char、byte、float或double的數(shù)組

• static int binarySearch(type[] a, type v)

使用二分搜索算法查找值。如果找到,返回相應(yīng)的下標(biāo):否則,返回一個(gè)負(fù)值r;-r-1為保持有序v應(yīng)插入的位置。

參數(shù):a 一個(gè)類型為int、long、short、char、byte、float或double的有序數(shù)組

v 與a中元素類型相同的一個(gè)值

• static void fill(type[] a, type v)

將數(shù)組的所有元素設(shè)置為v。

參數(shù):a 一個(gè)類型為int long、short、char、boolean、float或double 的數(shù)組

v 與a中元素類型相同的一個(gè)值

• static boolean equals(type[ ]a,type[] b}

如果兩個(gè)數(shù)組的長(zhǎng)度相同,并且下標(biāo)相同的元素都對(duì)應(yīng)相等,則返回true

參數(shù): a, b 類型為int long short char、byte、boolean、float、double的數(shù)組

以上就是對(duì)java數(shù)組排序內(nèi)容的介紹,并用實(shí)例具體說(shuō)明應(yīng)該用什么樣方法來(lái)對(duì)java數(shù)組排序,相信有了例子大家會(huì)更清楚具體的操作,希望大家在平時(shí)空余的時(shí)間多多學(xué)習(xí)java視頻教程中關(guān)于java數(shù)組排序的內(nèi)容,并加以練習(xí)做到完全掌握數(shù)組的知識(shí)和操作。

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