java字符串排序方法 JAVA編程:給出一個(gè)字符數(shù)組,按從小到大排序?
JAVA編程:給出一個(gè)字符數(shù)組,按從小到大排序?這是一個(gè)基本的冒泡排序,F(xiàn)or(int i 0 i lt s.length i) {//外循環(huán)控制比較的回合數(shù)。for(int j1jlt s . le
JAVA編程:給出一個(gè)字符數(shù)組,按從小到大排序?
這是一個(gè)基本的冒泡排序,
For(int i 0 i lt s.length i) {//外循環(huán)控制比較的回合數(shù)。
for(int j1jlt s . length j){//內(nèi)循環(huán)控制無(wú)輪比較次數(shù),每輪比較次數(shù)少一次。
If( s[i] gt s[j]) {//判斷當(dāng)前位置是值和下一個(gè)位置的值,如果大于它就改變位置。
Char c s[i] //最基本的換地方
s[i] s[j]
科學(xué)研究中心
}
}
}
在java中,怎么將已經(jīng)獲取到的list隨機(jī)排序?
可以在空白列表后洗牌,選擇題和填空題隨機(jī),然后把應(yīng)用題放在根列表中,這樣應(yīng)用題前的填空題和選擇題隨機(jī)排序,然后應(yīng)用題在最后。
一道java面試題,20億數(shù)字的文本排序,如何取前100?
每行一個(gè)數(shù)字
自己寫最小(大)堆就行了,C也可以使用標(biāo)準(zhǔn)庫(kù)中的優(yōu)先級(jí)隊(duì)列。先找到前100名,然后對(duì)前100名進(jìn)行排序就是結(jié)果。。。。這個(gè)題目不要太簡(jiǎn)單。。。。常見(jiàn)的擴(kuò)展是1億個(gè)URL。如何找到出現(xiàn)次數(shù)最多的前100個(gè)網(wǎng)址?
有點(diǎn)笨的方法:.:把20億個(gè)數(shù)分成2000(20000)個(gè)數(shù)據(jù)段(或文件),每組數(shù)組取一個(gè)(或10個(gè)),可以直接匯總。你也可以采取更多的二級(jí)分組或三級(jí)分組。次數(shù)多了就準(zhǔn)確了。
作為一個(gè)業(yè)余愛(ài)好者,我覺(jué)得這個(gè)方案應(yīng)該可以。:,如果你想找出從大到小的前100個(gè)數(shù)字,那么在20億中隨機(jī)抽取100個(gè),然后對(duì)這100個(gè)數(shù)字進(jìn)行排序,然后將剩下的數(shù)字與100個(gè)數(shù)字中最小的一個(gè)數(shù)字逐一進(jìn)行比較。如果它比100個(gè)中最小的那個(gè)小,你就把這個(gè)去掉,用下一個(gè)代替。如果那個(gè)數(shù)大于100個(gè)中最小的,那么就把這個(gè)數(shù)替換成最小的,然后再排序(這次排序會(huì)很快),然后從剩下的數(shù)中抓一個(gè)進(jìn)行比較,直到20億都比較完,剩下的100個(gè)就是最大的top 100。
我同意兩個(gè)靠譜的答案。
一個(gè)
按100個(gè)數(shù)字排序,然后把后面的數(shù)字和最小的100個(gè)數(shù)字比較,最后留下最大的100個(gè)數(shù)字。
2
根據(jù)字符串長(zhǎng)度、小數(shù)、負(fù)數(shù)的分類,有些短數(shù)字可以直接排除轉(zhuǎn)換成數(shù)字,然后進(jìn)行排序。這樣應(yīng)該可以節(jié)省一些轉(zhuǎn)換數(shù)字的時(shí)間吧?