91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java冒泡排序舉例分析

發布時間:2021-11-18 10:43:56 來源:億速云 閱讀:313 作者:iii 欄目:開發技術

這篇文章主要講解了“Java冒泡排序舉例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java冒泡排序舉例分析”吧!

冒泡排序原理

①比較相鄰的元素,如果前一個元素比后一個元素大,則交換這兩個元素的位置

②對每一對相鄰的元素循環上面的步驟,最終最后面的元素就是最大值

冒泡排序API設計

類名Bubble
構造方法Bubble:創建Bubble對象
成員方法

1.public static void sort(Comparable[] a):對數組內元素進行排序

2.private static void greater(Comparable v,Comparable w);判斷v是否大于w

3.private static void exchange(Comparable[]  a,int x,int y):交換a數組中,索引x和索引y處的值

冒泡排序的代碼實現

public class Bubble {
    //對數組a進行排序
    public static void sort(Comparable[] a){
        for(int i=a.length-1;i>0;i--){
            for(int j=0;j<i;j++){
                if(greater(a[j],a[j+1])){
                    exchange(a,j,j+1);
                }
            }
        }
 
    }
    //比較v元素是否大于w元素
    private static boolean greater(Comparable v,Comparable w){
        return v.compareTo(w)>0;
    }
    //數組元素x和y交換位置
    private static void exchange(Comparable[] a,int x,int y){
        Comparable t=a[x];
        a[x]=a[y];
        a[y]=t;
    }
}
//測試代碼
 class Test{
    public static void main(String[] args) {
        Integer[] a={4,5,6,3,2,1};
        Bubble.sort(a);
        System.out.println(Arrays.toString(a));
    }
}

測試結果:

Java冒泡排序舉例分析

冒泡排序的時間復雜度分析

冒泡排序雖然采用了雙層for循環遍歷,但是真正完成排序的代碼在內循環中,所以主要分析內層循環體的執行次數即可

在最壞的情況下。即數組為{6,5,4,3,2,1}的逆序

元素的比較次數為:(N-1)+(N-2)+(N-3)+...+2+1=

((N-1)+1)*(N-1)/2=N^2/2-N/2;

元素的交換次數為:(N-1)+(N-2)+(N-3)+...+2+1=

((N-1)+1)*(N-1)/2=N^2/2-N/2;

總執行次數為:2*(N^2/2-N/2)=N^2-N;

根據大O推導法則,保留最高階項,即冒泡排序的時間復雜度為O(N^2)

感謝各位的閱讀,以上就是“Java冒泡排序舉例分析”的內容了,經過本文的學習后,相信大家對Java冒泡排序舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳高县| 雅江县| 房产| 滨海县| 右玉县| 临武县| 陇南市| 陇西县| 丹凤县| 宁远县| 敦化市| 曲周县| 长岛县| 盈江县| 萍乡市| 仁布县| 新建县| 惠水县| 杂多县| 雷山县| 堆龙德庆县| 宁武县| 佛学| 布尔津县| 屏东市| 牟定县| 华蓥市| 开封市| 如东县| 澎湖县| 洪雅县| 宁阳县| 葵青区| 昆明市| 莱州市| 昭苏县| 平乐县| 深泽县| 平江县| 景东| 望江县|