冒泡排序
来源:互联网 发布:*在c语言中是什么意思 编辑:程序博客网 时间:2024/06/05 20:42
冒泡排序仅仅在相邻两个元素间进行比较和交换。下面的程序实现了对某个整型数组中的元素进行冒泡排序,它在保证逻辑正确的前提下,避免了冗余的比较。请填写缺少的代码。
int[]targetArr = {3,22,11,5,400,99,20,22,5};
for(inti=0; i<targetArr.length-1; i++)
{
for(int j=0; j<______________; j++)
{
if(targetArr[j]>targetArr[j+1])
{
inttmp = targetArr[j];
targetArr[j]= targetArr[j+1];
targetArr[j+1]= tmp;
}
}
}
总结:关键点有两个一个是数组的值进行置换,还有一个就是双重循环!外循环表示的是进行多少趟比较,而内循环表示就是在每一趟中对每一个数进行大小的比较,然后再进行置换!每一趟中都把最大值放到最后!而下一趟就不用上一趟的最大值进行比较!这就是冒泡排序的基本算法!
也可以这么理解,有n个数就要进行(n-1)次比较!为什么是(n-1)次,根据冒泡排序的算法,每一趟的目的就是把当前这一趟的最大的值放到最后!比较(n-1)次后,第n趟也就不用比较都可以得知!例如有三个数:5、6、4.
第一趟:5、4、6
第二趟:4、5、6
完整代码:
publicclass Demo3{ public static void main (String args[]) { int[] targetArr = {3,22,11,5,400,99,20,22,5}; for(int i=0; i<targetArr.length-1;i++) { for(int j=0; j<targetArr.length-i-1; j++) { if(targetArr[j]>targetArr[j+1]) { inttmp = targetArr[j]; targetArr[j] = targetArr[j+1]; targetArr[j+1] = tmp; } } } for(int i=0; i<targetArr.length; i++) { System.out.print(targetArr[i]+"\t"); } } }
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 逆向输出
- 研究生如何做好科研和发表文章(二)
- eclipse和vs2010 (visual studio)和BBEdit自动排版快捷键(auto format shortcuts)
- java基础学习要点三:内部类
- java基础学习要点四:设计模式
- 冒泡排序
- 解决SqlServer "设备激活错误,请使用 WITH MOVE 选项来标识该文件的有效位置"
- 研究生如何做好科研和发表文章(三)
- java基础学习要点五:事件监听
- java基础学习要点六:多线程
- 研究生如何做好科研和发表文章(四)
- 请使用RESTORE FILELISTONLY来列出逻辑文件名。RESTORE DATABASE 操作异常终止
- java基础学习要点七:内省
- windows下忘记mysql密码的补救办法