java算法之冒泡排序法
由此可见:N个数字要排序完成,总共进行N-1趟排序,每第 i 趟的排序次数为 (N-i) 次,所以
可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即
for(inti=0;i<arr.length-1;i++){
for(intj=0;j<arr.length-1-i;j++){
}
}
冒泡排序法 口诀:
外层循环 0到n-1 //控制比较轮数 n 表示元素的个数
内层循环 0到n-i-1 //控制每一轮比较次数
两两比较做交换
冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。
如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要
比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,
第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,
没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。
import java.util.Scanner; //冒泡排序法 口诀:
/* 外层循环 0到n-1 //控制比较轮数 n 表示元素的个数
* 内层循环 0到n-i-1 //控制每一轮比较次数
两两比较做交换
*/
public class Demo03 { public static void main(String[] args) { Scanner input = new Scanner(System.in);
int NUM = 5;
int []a = new int[NUM];
System.out.println("请输入数字:"); for(int i=0;i<a.length;i++){
a[i] = input.nextInt();
} System.out.println("排序之前:");
for (int i : a) {
System.out.print(i+"\t");
} //冒泡排序实现
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
} System.out.println("\n排序之后:");
for (int i : a) {
System.out.print(i+"\t");
} } }
java算法之冒泡排序法的更多相关文章
- JAVA算法系列 冒泡排序
java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直 ...
- java算法之冒泡排序
所有的冒泡排序算法都是一样的: 冒泡排序可以分为两种情况: 一种是将无序序列排序为由小到大的升序方式: 另一种情况是将无序序列转化成一种由大到小的降序排列:
- 【Java算法】冒泡排序
package suanfa; public class Maopao { public static void main(String[] args) { // TODO Auto-generate ...
- java基础算法之冒泡排序
接触冒泡算法还是大一了,学习C语言的冒泡算法.现在唯一记得就是冒泡与选择了.出来刚刚工作的时候觉的算法基本没撒用处,现在发现这些都是很好的基础.因此自己也准备重新拾起这些知识. 冒泡排序 泡排序是一种 ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...
- Java常见排序算法之冒泡排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- c/c++ 算法之快速排序法 冒泡排序法,选择排序法,插入排序法
本文详细叙述和实现了快速排序算法,冒泡排序 选择排序 插入排序比较简单,原理在这里不再详述,直接用代码进行了实现. 快速排序法(quicksort)是目前所公认最快的排序方法之一(视解题的对象而定), ...
- java排序算法之冒泡排序(Bubble Sort)
java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...
随机推荐
- 总结下java经常犯的错误
编写代码是一种艺术,认识错误是我们代码改进的重要途径之一.以下情况并非大家都能碰到过,但希望提高代码质量的人都引以为戒.以下各种情况,都是初学者经常犯的错误. 1.1 字符串没有判断是否为 ...
- Redhat6.4 配置本地网络的FTP YUM源
Redhat6.4 配置本地网络的FTP YUM源 如果本机IP: 192.168.8.47 (一) 配置本机的yum源 使用以下的方法能够配置本机的yum源: 1) scp命令上传ISO文件到: / ...
- [Node.js] Use "prestart" in scripts
Usually we run : npm start to start an app, then we we might call other script to do something: npm ...
- [Redux] Passing the Store Down with <Provider> from React Redux
Previously, we wrote the Provider component by ourself: class Provider extends Component { getChildC ...
- Tomcat 7.0 进入项目管理页面时的密码问题
tomcat7 这个版本,官方网下载的原始包项目管理页面的权限和之前版本的配置有点区别. 到Tomcat的conf文件夹下找到tomcat-users.xml文件,有配置权限的配置文件. ma ...
- ios文件读取
/* * @brief 沙盒下的各种文件 */ - (void)getPaths { /** * @brief 获取沙盒的路径 */ NSString * HomeDirectory = NSHo ...
- 11 java 反射机制
Java反射机制的适用场景及其利与弊: http://blog.csdn.net/zolalad/article/details/29370565 http://my.oschina.net/u/10 ...
- jquery cookie 删除不了的处理办法
$.cookie(name, null);$.cookie(name, null, {path : "/"}); Jquery Cookie的值直接设置null,并不能直接删除Co ...
- (原).cc 和 .cpp 后缀结尾的文件的区别
This caused a few problems the first time C++ was ported to a system where case wasn't significant i ...
- hdu5355 Cake(构造)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Cake Time Limit: 2000/1000 MS (Java/Other ...