java数据结构冒泡算法
来源:互联网 发布:道可道 知乎 编辑:程序博客网 时间:2024/05/23 14:55
/**
* 冒泡算法(从大向小)
* 冒泡方向是 从左向右
*
* @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;
}
- java数据结构冒泡算法
- 冒泡排序 Java数据结构与算法
- <二>java数据结构与算法 冒泡排序
- java数据结构与算法____冒泡排序
- Java数据结构与算法---冒泡排序
- Java数据结构与算法(4) -冒泡排序
- 数据结构-冒泡排序算法
- 数据结构-冒泡算法
- 数据结构-冒泡排序算法
- Java数据结构与算法之数组排序——冒泡
- 【大话数据结构&算法】冒泡排序(Java/C实现源码)
- Java数据结构和算法-简单排序(1-冒泡排序)
- java数据结构与算法-简单排序-冒泡排序
- 数据结构与算法(6)---Java语言实现:冒泡排序
- 数据结构JAVA--冒泡排序
- Java数据结构---冒泡排序
- 【数据结构与算法】冒泡排序
- 数据结构与算法-冒泡排序
- Linux C函数环境变量(env)setenv unsetenv putenv unsetenv
- JavaWeb体系结构的理解-1.基础
- 系统调用 fchownat
- 查询mysql总结及预处理
- vs2010在win7下打包.net2.0框架的程序
- java数据结构冒泡算法
- ViewTreeObserver
- Linux内核部件分析--设备驱动模型之device
- Android实现多页左右滑动效果,支持子view动态创建和cache
- Linux常用C函数—内存及字符串操作篇
- PCA人脸识别过程
- Linux内核部件分析--设备驱动模型之bus
- 使用httpclient下载文件
- WTL在VC各版本下的安装