Java冒泡排序簡單實現(xiàn)
算法描述:對于給定的n個記錄,從第一個記錄開始依次對相鄰的兩個記錄進行比較,當(dāng)前面的記錄大于后面的記錄時,交換位置,進行一輪比較和交換后,n個記錄中的最大記錄將位于第n位;然后對前(n-1)個記錄進行第二輪比較;重復(fù)該過程直到進行比較的記錄只剩下一個為止。
冒泡排序是非常好理解的,以從小到大排序為例,每一輪排序就找出未排序序列中最大值放在最后。
設(shè)數(shù)組的長度為N:
(1)比較前后相鄰的二個數(shù)據(jù),如果前面數(shù)據(jù)大于后面的數(shù)據(jù),就將這二個數(shù)據(jù)交換。
(2)這樣對數(shù)組的第0個數(shù)據(jù)到N-1個數(shù)據(jù)進行一次遍歷后,最大的一個數(shù)據(jù)就“沉”到數(shù)組第N-1個位置。
(3)N=N-1,如果N不為0就重復(fù)前面二步,否則排序完成。
以上就是冒泡排序的基本思想,按照這個定義很快就能寫出代碼。
package sorting;
/**
* 冒泡排序
* 平均O(n^2),最好O(n),最壞O(n^2);空間復(fù)雜度O(1);穩(wěn)定;簡單
* @author zeng
*
*/
public class BubbleSort {
public static void bubbleSort(int[] a){
int n = a.length;
int temp = 0;
for (int i=0;i<n;i++){
for (int j=0;j<n-i-1;j++){
if(a[j]<a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
public static void main(String[] args){
int[] a ={49,38,65,97,76,13,27,50};
bubbleSort(a);
for (int j:a)
System.out.print(j+" ");
}
}
總結(jié)
以上就是本文關(guān)于Java冒泡排序簡單實現(xiàn)的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
SpringCloud Feign遠程調(diào)用與自定義配置詳解
Feign是Netflix公司開發(fā)的一個聲明式的REST調(diào)用客戶端; Ribbon負(fù)載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進行微服務(wù)開發(fā)非常基礎(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時出現(xiàn)的,而且配置也都非常相似2022-11-11
Java中parallelStream().forEach()的踩坑日記
本文主要介紹了Java中parallelStream().forEach()的踩坑日記,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
詳解用Spring Boot Admin來監(jiān)控我們的微服務(wù)
這篇文章主要介紹了用Spring Boot Admin來監(jiān)控我們的微服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
spring security數(shù)據(jù)庫表結(jié)構(gòu)實例代碼
這篇文章主要介紹了spring security數(shù)據(jù)庫表結(jié)構(gòu)實例代碼,需要的朋友可以參考下2017-09-09
在springboot中使用注解將值注入?yún)?shù)的操作
這篇文章主要介紹了在springboot中使用注解將值注入?yún)?shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

