這是冒泡排序。
創(chuàng)新互聯(lián)建站-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、服務(wù)器機(jī)柜租用、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),聯(lián)系電話:18980820575
下面是選擇排序的代碼:
for(int i=0;ia.length;i++){
max = i;
/**查找第 i大的數(shù),直到記下第 i大數(shù)的位置***/
for(int j=i+1;ja.length;j++){
if(a[max]a[j])
max = j; //記下較大數(shù)位置,再次比較,直到最大
}
/***如果第 i大數(shù)的位置不在 i,則交換****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
將數(shù)字從大到小排序的方法:
例如簡(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)行排序。
//簡(jiǎn)單選擇排序,按自然順序
public static void selectsort(int[] array){
int min, index, temp;
for(int i = 0; i array.length - 1; i++){ // N - 1 趟
min = i;
//查找選擇最小元素值的下標(biāo)索引值
for(index = i + 1; index array.length; index++){
if(array[min] array[index])
min = index;
}
//交換
if(min != i){
temp = array[min];
array[min] = array[i];
array[i] = temp;
}
}
}
public?class?TestBaiduKnow?{
public?static?void?main(String[]?args)?{
int[]?a?=?{?3,?5,?6,?1,?2,?8,?9?};
//?冒泡?排序后結(jié)果從小到大
for?(int?i?=?0;?i??a.length;?i++)
for?(int?j?=?i;?j??a.length;?j++)?{
if?(a[i]??a[j])?{
a[i]?=?a[i]?+?a[j];
a[j]?=?a[i]?-?a[j];
a[i]?=?a[i]?-?a[j];
}
}
print(a);
//?選擇排序?結(jié)果從大到小
int?pos?=?-1;
for?(int?i?=?0;?i??a.length;?i++)?{
int?max?=?a[i];
for?(int?j?=?i?+?1;?j??a.length;?j++)?{
if?(max??a[j])?{
pos?=?j;
max?=?a[j];
}
}
if?(pos?!=?-1)?{
a[i]?=?a[i]?+?a[pos];
a[pos]?=?a[i]?-?a[pos];
a[i]?=?a[i]?-?a[pos];
pos?=?-1;
}
}
print(a);
}
private?static?void?print(int[]?a)?{
for?(int?i?=?0;?i??a.length;?i++)
System.out.print(a[i]?+?"\t");
System.out.println();
}
}