/**
* 冒泡算法(从大向小)
* 冒泡方向是 从左向右
*
* @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;
}
* 冒泡算法(从大向小)
* 冒泡方向是 从左向右
*
* @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;
}