冒泡排序演算法(JAVA)

來源:互聯網
上載者:User

冒泡排序演算法(JAVA)

一、   概要

前天,有人問下排序演算法的實現,所以抽時間寫了個冒泡排序演算法。冒泡排序演算法的原理是從第一個數開始,依次用當前的數與後面的每個數進行比較,如果當前數大於後面的任何一個數字,都交換當前兩個數的位置。在資料比較小的時候使用冒泡排序演算法效率還可以(10000長度的整形數組排序大概351ms),但是數組比較長的時候冒泡排序的效率比較低,可以採用快排或者歸併。

二、   代碼

冒泡演算法的關鍵代碼如下:

package com.csdn.algorithm;import java.util.Random;/** * 測試冒泡排序 *  * @author Administrator *  */public class TestBubbleSort {/** * @param args */public static void main(String[] args) {// 1.構造資料Random aRandom = new Random();int nArrayLenght = 60000;int[] aData = new int[nArrayLenght];for (int i = 0; i < aData.length; i++) {aData[i] = aRandom.nextInt(10000);}// 2.進行排序long lStartTime = System.currentTimeMillis();int[] aSortResult = bubbleSort(aData);long lEndTime = System.currentTimeMillis();// 3.列印排序用時System.out.println("排序[" + nArrayLenght + "]個數,用時  "+ (lEndTime - lStartTime) + "ms");// 3.列印結果//for (int i = 0; i < aSortResult.length; i++) {//System.out.println(aSortResult[i]);//}}/** * 把傳入的整形數組進行冒泡排序,數組中按照升序排列<BR/> * 演算法複雜度:O(n^2)<BR/> * 小於10000個資料的數組用它不會逾時(大概一秒) <BR/> * 但如果更大就要用快排或歸併O(n*log2(n)) *  * @param _aIntegerArray * @return */private static int[] bubbleSort(int[] _aIntegerArray) {// 1.參數校正if (_aIntegerArray == null) {return _aIntegerArray;}// 2.從第一個數開始,依次用前面的數字與後面的數字一一比較,取小的值for (int i = 0; i < _aIntegerArray.length; i++) {for (int j = i + 1; j < _aIntegerArray.length; j++) {if (_aIntegerArray[i] > _aIntegerArray[j]) {// 交換兩數int nTemp = _aIntegerArray[i];_aIntegerArray[i] = _aIntegerArray[j];_aIntegerArray[j] = nTemp;}}}// 3.傳回值return _aIntegerArray;}}

 

三、   執行時間統計

 
 

排序[10]個數,用時  0ms

排序[100]個數,用時  1ms

排序[1000]個數,用時  3ms

排序[10000]個數,用時  351ms

排序[20000]個數,用時  1326ms

排序[30000]個數,用時  2714ms

排序[60000]個數,用時  9054ms

其他長度的數組排序時間可以用程式測試下

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.