Java經(jīng)典排序算法之冒泡排序代碼實例
冒泡排序
冒泡排序的思想很簡單:遍歷數(shù)組,比較相鄰的兩個元素,順序錯誤就把它們交換,直到整個數(shù)組排序完成。因為每經(jīng)過一趟排序,越小的元素會經(jīng)交換而慢慢“浮”到數(shù)列的頂端,因此叫做冒泡排序。
排序原理:(以升序排列為例)相鄰兩元素進行比較,如過左側(cè)元素大于右側(cè)元素,則進行交換,每完成一次循環(huán)就將最大元素排在最后,下一次循環(huán)是將其它的數(shù)進行類似操作。(即每進行一次循環(huán),待排序的數(shù)組就少一個元素)
時間復雜度:O(N^2)
空間復雜度:O(1) 多增加了一個臨時元素tmp
代碼實現(xiàn)(java)
public static void main(String[] args) {
int[] arr = {3,5,1,2,4,8,4};
sort(arr);
for (int i : arr) {
System.out.println(i);
}
}
public static void sort(int[] arr){
//外層循環(huán)為整個數(shù)組循環(huán)次數(shù)
for (int i = 0; i < arr.length-1; i++) {
//內(nèi)層循環(huán)是每個元素比較的次數(shù)
for (int j = 0; j < arr.length-1-i ; j++) {
//如果前一個元素比后一個元素大,交換位置
if(arr[j]>arr[j+1]){
int tmp = arr[j];
arr[j]= arr[j+1];
arr[j+1] = tmp;
}
}
}
}
到此這篇關(guān)于Java經(jīng)典排序算法之冒泡排序代碼實例的文章就介紹到這了,更多相關(guān)Java冒泡排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
5分鐘快速搭建SpringBoot3?+?MyBatis-Plus工程/項目的實現(xiàn)示例
本文主要介紹了使用IntelliJ?IDEA創(chuàng)建Spring?Boot工程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-01-01
Spring的嵌套事務(wù)(Propagation.NESTED)到底是個啥案例代碼講解
SavePoint是數(shù)據(jù)庫事務(wù)中的一個概念,?可以將整個事務(wù)切割為不同的小事務(wù),可以選擇將狀態(tài)回滾到某個小事務(wù)發(fā)生時的樣子,本文通過案例代碼講解Spring的嵌套事務(wù)(Propagation.NESTED)到底是個啥,感興趣的朋友跟隨小編一起看看吧2023-01-01
SpringBoot單元測試使用@Test沒有run方法的解決方案
這篇文章主要介紹了SpringBoot單元測試使用@Test沒有run方法的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
淺析Java如何利用Spire.PDF for Java實現(xiàn)將PDF轉(zhuǎn)換為Word
在日常開發(fā)和辦公中,PDF 格式以其穩(wěn)定的版式和跨平臺兼容性廣受歡迎,本文將為你揭示如何利用強大的 Spire.PDF for Java 庫,輕松實現(xiàn) PDF 到 Word 的轉(zhuǎn)換,感興趣的小伙伴可以了解下2026-01-01
關(guān)于Java實現(xiàn)HttpServer模擬前端接口調(diào)用
這篇文章主要介紹了關(guān)于Java實現(xiàn)Http?Server模擬前端接口調(diào)用,Http?協(xié)議是建立在?TCP?協(xié)議之上的協(xié)議,所以能用?TCP?來自己模擬一個簡單的?Http?Server?當然是可以的,需要的朋友可以參考下2023-04-04
Guava是Google發(fā)布的一個開源庫,主要提供了一些在Java開發(fā)中非常有用的工具類和API,不管是工作還是學習都是非常值得我們?nèi)ナ煜さ?,一起來看看?/div> 2023-03-03最新評論

