Java實(shí)現(xiàn)冒泡排序簡(jiǎn)單示例
簡(jiǎn)介
冒泡排序(英語:Bubble Sort)又稱為泡式排序,是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤就把它們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。
冒泡排序算法的運(yùn)作如下:
- 比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換它們兩個(gè)。
- 對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大的數(shù)。
- 針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
- 持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。
冒泡排序的時(shí)間復(fù)雜度是 O ( n 2 ) O(n^2) O(n2),所以它并不適合對(duì)大數(shù)據(jù)集進(jìn)行排序。由于它的簡(jiǎn)潔,冒泡排序通常被用來對(duì)于程序設(shè)計(jì)入門的學(xué)生介紹算法的概念。
Java實(shí)現(xiàn)
下面是一個(gè)冒泡排序的 Java 代碼實(shí)現(xiàn):
public class BubbleSort {
public static void main(String[] args) {
int[] array = {5, 4, 3, 2, 1};
int temp;
// 冒泡排序
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
// 打印排序后的結(jié)果
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}運(yùn)行結(jié)果:
[1, 2, 3, 4, 5]
冒泡排序排序過程中需要一個(gè)臨時(shí)變量進(jìn)行兩兩交換,所需要的額外空間為1,因此空間復(fù)雜度為 O ( 1 ) O(1) O(1)。冒泡排序在排序過程中,元素兩兩交換時(shí),相同元素的前后順序并沒有改變,所以冒泡排序是一種穩(wěn)定排序算法。
總結(jié)
到此這篇關(guān)于Java實(shí)現(xiàn)冒泡排序的文章就介紹到這了,更多相關(guān)Java冒泡排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Mybatis自定義排序規(guī)則實(shí)現(xiàn)復(fù)雜排序
本文主要介紹了利用Mybatis自定義排序規(guī)則實(shí)現(xiàn)復(fù)雜排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
Java實(shí)現(xiàn)動(dòng)物換位游戲完整?過程詳解
大家好,今天嘗試用Java編程設(shè)計(jì)一個(gè)GUI界面的動(dòng)物換位游戲,游戲的結(jié)果是讓左右兩組的動(dòng)物交換位置,以下是具體設(shè)計(jì)過程,供大家參考2022-07-07
java實(shí)現(xiàn)二維碼生成功能詳細(xì)示例
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)二維碼生成功能的相關(guān)資料,隨著信息化時(shí)代的到來,二維碼作為一種信息傳遞的工具,越來越受到人們的歡迎,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
基于SpringBoot打造RESTful API實(shí)戰(zhàn)指南
本文詳細(xì)介紹了RESTful API的基本概念、設(shè)計(jì)規(guī)范以及與非RESTful風(fēng)格的對(duì)比,通過Spring Boot實(shí)戰(zhàn)部分,展示了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的RESTful API,需要的朋友可以參考下2025-12-12

