將數(shù)字從大到小排序的方法:

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)合川免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
例如簡(jiǎn)一點(diǎn)的冒泡排序,將第一個(gè)數(shù)字和后面的數(shù)字逐個(gè)比較大小,如果小于,則互換位置,大于則不動(dòng)。此時(shí),第一個(gè)數(shù)為數(shù)組中的最大數(shù)。然后再將第二個(gè)數(shù)與后面的數(shù)逐個(gè)比較,以次類推。
示例代碼如下:?
public?class?Test?{?
public?static?void?main(String[]?args)?{?
int?[]?array?=?{12,3,1254,235,435,236,25,34,23};?
int?temp;?
for?(int?i?=?0;?i??array.length;?i++)?{?
for?(int?j?=?i+1;?j??array.length;?j++)?{?
if?(array[i]??array[j])?{?
temp?=?array[i];?
array[i]?=?array[j];?
array[j]?=?temp; //?兩個(gè)數(shù)交換位置?
}?
}?
}?
for?(int?i?=?0;?i??array.length;?i++)?{?
System.out.print(array[i]+"??");?
}?
}?
}
數(shù)組對(duì)于每一門編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。
Java 語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類型元素。
你可以聲明一個(gè)數(shù)組變量,如 numbers[100] 來(lái)代替直接聲明 100 個(gè)獨(dú)立變量 number0,number1,....,number99
擴(kuò)展資料
Java中利用數(shù)組進(jìn)行數(shù)字排序一般有4種方法:
1、選擇排序是先將數(shù)組中的第一個(gè)數(shù)作為最大或最小數(shù),然后通過(guò)循環(huán)比較交換最大數(shù)或最小數(shù)與一輪比較中第一個(gè)數(shù)位置進(jìn)行排序。
2、冒泡排序也是先將數(shù)組中的第一個(gè)數(shù)作為最大或最小數(shù),循環(huán)比較相鄰兩個(gè)數(shù)的大小,滿足條件就互換位置,將最大數(shù)或最小數(shù)沉底。
3、快速排序法主要是運(yùn)用Arrays類中的Arrays.sort方法()實(shí)現(xiàn)。
4、插入排序是選擇一個(gè)數(shù)組中的數(shù)據(jù),通過(guò)不斷的插入比較最后進(jìn)行排序。
java變成對(duì)數(shù)組進(jìn)行排序可以使用ArraySort方法,保存源數(shù)組下標(biāo)值可以存入map中,如下代碼:
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.HashMap;
import?java.util.List;
public?class?ceshi?{
public?static?void?main(String[]?args)?{
int?n?=?5;
int[]?a?=?{?8,?5,?4,?6,?2,?1,?7,?9,?3?};
HashMap?map?=?new?HashMap();
for?(int?i?=?0;?i??a.length;?i++)?{
map.put(a[i],?i);?//?將值和下標(biāo)存入Map
}
//?排列
List?list?=?new?ArrayList();
Arrays.sort(a);?//?升序排列
for?(int?i?=?0;?i??a.length;?i++)?{
list.add(a[i]);
}
for?(Object?object?:?list)?{
System.out.print(object?+?",");
}
System.out.println();
//?查找原始下標(biāo)
for?(int?i?=?0;?i??n;?i++)?{
System.out.print(map.get(a[i])?+?",");
}
}
}
運(yùn)行結(jié)果如下:
參考代碼如下,可以按需求自己修改
import?java.util.Date;
public?class?SortThread?{
public?static?void?main(String[]?args)?{
//產(chǎn)生一個(gè)隨機(jī)數(shù)組
int[]?ary?=?getArray();
//啟動(dòng)冒泡排序線程
new?Thread(new?MaoPao(ary)).start();
//啟動(dòng)快速排序線程
new?Thread(new?KuaiSu(ary)).start();
}
private?static?int[]?getArray()?{
//建議數(shù)字n不要超過(guò)1百萬(wàn),十萬(wàn)左右就好了
int?n?=?(int)?(Math.random()*1000000)+11;
int[]?ary=?new?int[n];
System.out.println("n的值是"?+?n);
for?(int?i?=?0;?i??ary.length;?i++)?{
ary[i]?=?(int)?(Math.random()*100000);
}
return?ary;
}
}
//冒泡排序
class?MaoPao?implements?Runnable?{
int[]?ary;
public?MaoPao(int[]?ary)?{
this.ary?=?ary;
}
@Override
public?void?run()?{
long?st?=?System.currentTimeMillis();
System.out.println(new?Date()?+?"冒泡排序線程:開(kāi)始執(zhí)行排序");
for?(int?i?=?0;?i??ary.length?-?1;?i++)?{
for?(int?j?=?0;?j??ary.length?-?i?-?1;?j++)?{
if?(ary[j]??ary[j?+?1])?{
int?temp?=?ary[j];
ary[j]?=?ary[j?+?1];
ary[j?+?1]?=?temp;
}
}
}
long?et?=?System.currentTimeMillis();
System.out.println(new?Date()?+?"冒泡排序線程完成排序,耗費(fèi)時(shí)間"?+?(et?-?st)?+?"毫秒");
for?(int?i?=?0;?i??ary.length;?i++)?{
System.out.println(ary[i]+"?");
}
}
}
//快速排序
class?KuaiSu?implements?Runnable?{
int[]?ary;
public?KuaiSu(int[]?ary)?{
this.ary?=?ary;
}
@Override
public?void?run()?{
long?st?=?System.currentTimeMillis();
System.out.println(new?Date()?+?"快速排序線程:開(kāi)始執(zhí)行排序");
quickSort(ary,?1,?ary.length);
long?et?=?System.currentTimeMillis();
System.out.println(new?Date()?+?"快速排序線程排序完成,耗費(fèi)時(shí)間"?+?(et?-?st)?+?"毫秒");
for?(int?i?=?0;?i??ary.length;?i++)?{
System.out.println(ary[i]+"?");
}
}
public?static?int?Partition(int?a[],?int?p,?int?r)?{
int?x?=?a[r?-?1];
int?i?=?p?-?1;
int?temp;
for?(int?j?=?p;?j?=?r?-?1;?j++)?{
if?(a[j?-?1]?=?x)?{
i++;
temp?=?a[j?-?1];
a[j?-?1]?=?a[i?-?1];
a[i?-?1]?=?temp;
}
}
temp?=?a[r?-?1];
a[r?-?1]?=?a[i?+?1?-?1];
a[i?+?1?-?1]?=?temp;
return?i?+?1;
}
public?static?void?quickSort(int?a[],?int?p,?int?r)?{
if?(p??r)?{
int?q?=?Partition(a,?p,?r);
quickSort(a,?p,?q?-?1);
quickSort(a,?q?+?1,?r);
}
}
}
新聞標(biāo)題:java排序代碼,選擇排序java代碼
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article11/dsiesdd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、虛擬主機(jī)、動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)