private?ListInteger?mList?=?new?ArrayList();
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出奉賢免費做網(wǎng)站回饋大家。
mList.add(1);
mList.add(5);
mList.add(7);
mList.add(9);
mList.add(8);
mList.add(3);
//?排序前
Log.d(TAG,?"onCreate:?"?+?mList.toString());
Collections.sort(mList);
//?排序后
Log.d(TAG,?"onCreate:?"?+?mList.toString());
打印的Log:
[1,?5,?7,?9,?8,?3]
[1,?3,?5,?7,?8,?9]
import java.util.Arrays;
import java.util.Collection;
public class Demo2 {
public static void main(String[] args) {
// 這是你的三個數(shù)
int[] arr = { 12, 32, 18 };
// 兩層嵌套循環(huán)
for (int i = 0; i arr.length; i++) {
for (int j = 0; j i; j++) {
// 如果后者小于前者,讓他們交換位置,一直循環(huán)
// 直到每個數(shù)字都從頭到尾跟數(shù)組里的每個數(shù)字比較一次
if (arr[i] arr[j]) {
// 這三步就是交換位置,相信聰明的你一定看得懂了
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
}
}
//最后打印出來
for (int i = 0; i arr.length; i++) {
System.out.println(arr[i]);
}
}
}
資料拓展:
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?/p>
package temp;
import sun.misc.Sort;
/**
* @author zengjl
* @version 1.0
* @since 2007-08-22
* @Des java幾種基本排序方法
*/
/**
* SortUtil:排序方法
* 關(guān)于對排序方法的選擇:這告訴我們,什么時候用什么排序最好。當人們渴望先知道排在前面的是誰時,
* 我們用選擇排序;當我們不斷拿到新的數(shù)并想保持已有的數(shù)始終有序時,我們用插入排序;當給出的數(shù)
* 列已經(jīng)比較有序,只需要小幅度的調(diào)整一下時,我們用冒泡排序。
*/
public class SortUtil extends Sort {
/**
* 插入排序法
* @param data
* @Des 插入排序(Insertion Sort)是,每次從數(shù)列中取一個還沒有取出過的數(shù),并按照大小關(guān)系插入到已經(jīng)取出的數(shù)中使得已經(jīng)取出的數(shù)仍然有序。
*/
public int[] insertSort(int[] data) {
1/11頁
int temp;
for (int i = 1; i data.length; i++) {
for (int j = i; (j 0) (data[j] data[j - 1]); j--) {
swap(data, j, j - 1);
}
}
return data;
}
/**
* 冒泡排序法
* @param data
* @return
* @Des 冒泡排序(Bubble Sort)分為若干趟進行,每一趟排序從前往后比較每兩個相鄰的元素的大?。ㄒ虼艘惶伺判蛞容^n-1對位置相鄰的數(shù))并在
* 每次發(fā)現(xiàn)前面的那個數(shù)比緊接它后的數(shù)大時交換位置;進行足夠多趟直到某一趟跑完后發(fā)現(xiàn)這一趟沒有進行任何交換操作(最壞情況下要跑n-1趟,
* 這種情況在最小的數(shù)位于給定數(shù)列的最后面時發(fā)生)。事實上,在第一趟冒泡結(jié)束后,最后面那個數(shù)肯定是最大的了,于是第二次只需要對前面n-1
* 個數(shù)排序,這又將把這n-1個數(shù)中最小的數(shù)放到整個數(shù)列的倒數(shù)第二個位置。這樣下去,冒泡排序第i趟結(jié)束后后面i個數(shù)都已經(jīng)到位了,第i+1趟實
* 際上只考慮前n-i個數(shù)(需要的比較次數(shù)比前面所說的n-1要?。_@相當于用數(shù)學(xué)歸納法證明了冒泡排序的正確性
可以實現(xiàn)比較器Comparator來定制排序方案,同時使用Colletions.sort的方式進行排序,代碼如下:
public void sortDesc(ListLong s){
Collections.sort(s, new ComparatorLong() {
public int compare(Long o1, Long o2) {
Long result = o2 - o1;
return result.intValue();
}
});
s.forEach(item-{
System.out.print(item +" ");
});
}
同時常用的比較排序算法主要有:冒泡排序,選擇排序,插入排序,歸并排序,堆排序,快速排序等。
java的冒泡排序?qū)崿F(xiàn)如下:
public?static?void?bubbleSort(int?[]arr)?{????????for(int?i?=0;iarr.length-1;i++)?{????????????for(int?j=0;jarr.length-i-1;j++)?{//-1為了防止溢出????????????????if(arr[j]arr[j+1])?{????????????????????int?temp?=?arr[j];?????????????????????????????????????????arr[j]=arr[j+1];?????????????????????????????????????????arr[j+1]=temp;????????????}????????????}????????????}????}
還有非比較排序,時間復(fù)雜度可以達到O(n),主要有:計數(shù)排序,基數(shù)排序,桶排序等。