三種冒泡算法

package yunnex.mobile;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import yunnex.foundation.base.entity.Province;
import yunnex.foundation.base.service.ProvinceService;
import yunnex.saofu.mall.constants.MallProductOrderStatus;
import yunnex.saofu.mall.dto.order.MallProductOrderDto;
import yunnex.saofu.mall.service.order.ExtProductOrderService;

import java.lang.reflect.Array;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;

public class TestMath {

/**
 * 冒泡排序的第一種實現(xiàn), 沒有任何優(yōu)化
 * @param a
 * @param n
 */
private static void BubbleSort1(int [] a, int n){
    int i, j;
    int num=0;
    for(i=0; i<n; i++){  //表示n次排序過程。
        for(j=1; j<n-i; j++){
            if(a[j-1] > a[j]){//前面的數(shù)字大于后面的數(shù)字就交換
                //交換a[j-1]和a[j]
                int temp;
                temp = a[j-1];
                a[j-1] = a[j];
                a[j]=temp;
            }
            num++;
        }
    }
    System.out.println("num:"+num);
}

/**
 * 設(shè)置一個標(biāo)志黔衡,如果這一趟發(fā)生了交換辫封,則為true搀继,否則為false。明顯如果有一趟沒有發(fā)生交換樊销,說明排序已經(jīng)完成呵曹。
 * @param a
 * @param n
 */
private static void BubbleSort2(int [] a, int n){
    int j, k = n;
    boolean flag = true;//發(fā)生了交換就為true, 沒發(fā)生就為false,第一次判斷時必須標(biāo)志位true钮科。
    while (flag){
        flag=false;//每次開始排序前唤衫,都設(shè)置flag為未排序過]
        for(j=1; j<k; j++){
            if(a[j-1] > a[j]){//前面的數(shù)字大于后面的數(shù)字就交換
                //交換a[j-1]和a[j]
                int temp;
                temp = a[j-1];
                a[j-1] = a[j];
                a[j]=temp;
                //表示交換過數(shù)據(jù);
                flag = true;
            }
        }
        k--;//減小一次排序的尾邊界
    }
}

/**
 * 設(shè)置一個標(biāo)志,如果這一趟發(fā)生了交換绵脯,則為true佳励,否則為false。明顯如果有一趟沒有發(fā)生交換蛆挫,說明排序已經(jīng)完成赃承。
 * @param a
 * @param n
 */
private static void BubbleSort3(int [] a, int n){
    int j, k;
    int flag = n;
    while (flag>0){
        k=flag;
        flag=0;//每次開始排序前,都設(shè)置flag為未排序過]
        for(j=1; j<k; j++){
            if(a[j-1] > a[j]){//前面的數(shù)字大于后面的數(shù)字就交換
                int temp;
                temp = a[j-1];
                a[j-1] = a[j];
                a[j]=temp;

                //表示交換過數(shù)據(jù);
                flag = j;
            }
        }
    }
}



public static void main(String[] args) {
    int[] arr = {1,1,2,0,9,3,12,7,8,3,4,65,22};
    long time1=System.nanoTime();
    BubbleSort1(arr, arr.length);
    long time2=System.nanoTime();
    System.out.println("time1:"+(time2-time1));
    long time3=System.nanoTime();
    BubbleSort2(arr, arr.length);
    long time4=System.nanoTime();
    System.out.println("time2:"+(time4-time3));
    long time5=System.nanoTime();
    BubbleSort3(arr, arr.length);
    long time6=System.nanoTime();
    System.out.println("time3:"+(time6-time5));

    System.out.println(Arrays.toString(arr));
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悴侵,一起剝皮案震驚了整個濱河市瞧剖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖抓于,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做粤,死亡現(xiàn)場離奇詭異,居然都是意外死亡捉撮,警方通過查閱死者的電腦和手機(jī)怕品,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呕缭,“玉大人堵泽,你說我怎么就攤上這事』肿埽” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵睬愤,是天一觀的道長片仿。 經(jīng)常有香客問我,道長尤辱,這世上最難降的妖魔是什么砂豌? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮光督,結(jié)果婚禮上阳距,老公的妹妹穿的比我還像新娘。我一直安慰自己结借,他們只是感情好筐摘,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著船老,像睡著了一般咖熟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柳畔,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天馍管,我揣著相機(jī)與錄音,去河邊找鬼薪韩。 笑死确沸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俘陷。 我是一名探鬼主播罗捎,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岭洲!你這毒婦竟也來了宛逗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤盾剩,失蹤者是張志新(化名)和其女友劉穎雷激,沒想到半個月后替蔬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡屎暇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年承桥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片根悼。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡凶异,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挤巡,到底是詐尸還是另有隱情剩彬,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布矿卑,位于F島的核電站喉恋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏母廷。R本人自食惡果不足惜轻黑,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琴昆。 院中可真熱鬧氓鄙,春花似錦、人聲如沸业舍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勤讽。三九已至蟋座,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脚牍,已是汗流浹背向臀。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留诸狭,地道東北人券膀。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像驯遇,于是被迫代替她去往敵國和親芹彬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容