/**
* 冒泡算法(從大向小)
* 冒泡方向是 從左向右
*
* @param iArgs
* @return
*/
public static int[] getBubbleSort(int[] iArgs) {
int[] iTempArgs = iArgs;
boolean flag = true; //數組是否已經是最好情況
//第一層循環控制比較次數
for(int i = 0; i < iTempArgs.length ; i++) {
//iTempArgs.length - 1 -i 減1是因爲數據裏面有j+1 ,減i是因爲對於已經排好的位置不需要再比較
//j = 0 數據裏面所有的位置都需要比較,除了已經排好的位置不需要
//j = i 會有bug。
for(int j = 0 ; j < iTempArgs.length - 1 - i; j++) {
int iFont = iTempArgs[j];
int iBehind = iTempArgs[j + 1];
int temp = 0;
if(iBehind < iFont) {
temp = iBehind;
iTempArgs[j + 1] = iFont; // 給數據賦值
iTempArgs[j] = temp; //給數據賦值
flag = false;
}
}
if(flag) {
//如果數組已經是最好情況,就無需再排序,直接跳過
break;
}
}
return iTempArgs;
}
/**
* 冒泡算法(從小向大)
* 冒泡方向是 從右向左
* @param iArgs
* @return
*/
public static int[] getBubbleSortRTOL(int[] iArgs) {
int iTempArgs[] = iArgs;
boolean flag = true;
for(int i = 0; i < iTempArgs.length ; i ++) {
for(int j = iTempArgs.length - 1; j > i ; j--) {
int iFont = iTempArgs[j -1];
int iBehind = iTempArgs[j ];
int iTemp;
if(iFont > iBehind ) {
iTemp = iFont;
iTempArgs[j - 1] = iBehind;
iTempArgs[j] = iTemp;
flag = false;
}
}
if(flag) {
break;
}
}
return iTempArgs;
}
java數據結構冒泡算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
兩個數組按大小順序排列
三年磨一剑
2020-06-01 12:37:17
Java算法面試——排序算法(一)
知更鸟女孩
2020-02-21 01:47:17
Java算法面試——排序算法(二)
知更鸟女孩
2020-02-21 01:47:17
兩個數組按大小順序排列
三年磨一剑
2020-06-01 12:37:17
Java算法面試——排序算法(一)
知更鸟女孩
2020-02-21 01:47:17
Java算法面試——排序算法(二)
知更鸟女孩
2020-02-21 01:47:17
java數據結構(一)----------順序表操作實例
东升mds
2018-11-14 06:31:14
java數據結構和算法(1)
东升mds
2018-11-04 06:55:28
# 二分查找的遞歸與非遞歸實現
潇遥快乐
2018-10-13 03:37:02
java快速排序算法
三年磨一剑
2018-08-24 22:56:51