冒泡排序:可以想象成煮开水,气泡在瓶底的时候是比较小的,到达水面的时候达到最大。

冒泡排序的思想:先确定是升序还是降序,这里升序为例。每两个相邻的数字进行比较,前一个数字比后面一个数字大,就将两个数字交换位置,否则位置不变继续下一个。一轮排序之后,数组中最大的数字一定是在最后。

伪代码:

    数组a={10,9,8,7,6,5,4,3,2,1}

      for(int i=0;i<a.length;i++){

          for(int j=0;j<a.length-i-j;j++){   //为什么是j<a.length-i-1; 先解释减1,到数据组的最后两个数的时候a[j]  和 a[j++] 进行比较,当没有减1的时候会下标越界。为什么要减i,每一轮排序都会产生(i+1)个已经排好序的数据

              交换数据:swap(a[j],a[j++])

                      }

          }

      输出排序完的数据:升序

代码:

package math;

/**
* Created by Administrator on 2018/3/2.
* 冒泡排序
* 思想:冒泡排序就是将相邻的两个相比较,按照定义的规则,决定将大数放在前面还是后面,然后进行交换顺序,
* 每一次排序都会将那一次最大的或者最小的数排在最后
* 冒泡排序的时间复杂度:o(n2)
*/
public class BubbleTest { public static void main(String[] args){
/* //控制台进行输入数据
Scanner s=new Scanner(System.in);
//输入的数字存放到数组中
Integer array[]=new Integer[10];
Integer count=0;
System.out.println("请输入十个数:");
while (s.hasNextInt()){
Integer tempNum=s.nextInt();
array[count++]=tempNum;
if(count>9){
break;
}
}
System.out.println("输入的十个数是:");
for(int i=0;i<10;i++){
System.out.print(array[i]+",");
}*/
Integer count=100000;
Integer array[]=new Integer[count];
for(int w=0;w<array.length;w++){
array[w]=count--;
} /*冒泡排序*/
long startTime=System.currentTimeMillis();
System.out.println(startTime);
for(Integer i=0;i<array.length;i++){
for(Integer j=0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
Integer temp;
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
/* System.out.println("第"+i+"次排序之后的顺序:");
for(Integer k=0;k<array.length;k++){
System.out.print(array[k]+",");
}*/
}
Long endTime=System.currentTimeMillis();
System.out.println(endTime);
System.out.println("总耗时==="+(endTime-startTime));
/* System.out.println("排序之后的顺序:");
for(Integer f=0;f<array.length;f++){
System.out.print(array[f]+",");
}
*/ } }

java 之冒泡排序的更多相关文章

  1. Java版冒泡排序和选择排序

    一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...

  2. Java之冒泡排序(升序)

    Java之冒泡排序 * 编辑者:鸿灬嗳 * 实现功能: 使用冒泡排序对数组:{25,24,12,76,101,96,28} 排序. */ package test05; public class Bu ...

  3. java 数组冒泡排序、转置(降序)

    1.java 数组冒泡排序 排序的基本原理(升序): 原始数据:  2 .1 .9 .0 .5 .3 .7 .6 .8: 第一次排序: 1  .2 .0 .5 .3 .7 .6 .8 .9 : 第二次 ...

  4. Java实现冒泡排序

    冒泡排序思想就是将数列的相邻两个数比较,较大的数往后保存,小的数往前. package Sort; import java.util.Arrays; public class BubbleSort { ...

  5. Java冒泡排序,Java对象冒泡排序

    今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...

  6. JAVA排序--[冒泡排序]

    package com.array; public class Sort_MaoPao { /** * 项目名称:冒泡排序 * 项目要求:用JAVA对数组进行排序,并运用冒泡排序算法 * 作者:Sev ...

  7. Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

  8. 【Java SE】如何用Java实现冒泡排序

    摘要: 作为一名Java开发工程师,手头如果不会几个常见的排序算法,怎么可能经过笔试题这一关呢.据我所知,许多大型的公司的笔试题都有排序题,那我们先从最简单的排序:冒泡排序开始,以后几篇博客将继续更新 ...

  9. java:冒泡排序、选择排序、插入排序实现

    整数排序 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法. 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] ...

  10. Java实现冒泡排序,选择排序,插入排序

    冒泡排序: 思想: 冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说排序完成 特点:比较稳定,排序数较小是 ...

随机推荐

  1. Lightoj 1005 Rooks(DP)

    A rook is a piece used in the game of chess which is played on a board of square grids. A rook can o ...

  2. [MAC] Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead.

    MAC启动GoAgent,出现Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead. 解决方法:为Python安装pycrypto,可通过Py ...

  3. YTU 2432: C++习题 对象数组输入与输出

    2432: C++习题 对象数组输入与输出 时间限制: 1 Sec  内存限制: 128 MB 提交: 1603  解决: 1152 题目描述 建立一个对象数组,内放n(n<10)个学生的数据( ...

  4. Maven运行测试

    原文:http://tianya23.blog.51cto.com/1081650/292315/ Maven运行用于测试中的最佳实践(个人认为,呵呵)   1.创建maven工程 mvn arche ...

  5. Python基础第八天

    一.内容

  6. 《JAVA与模式》之解释器模式

    解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 解释器模式的结构 下面就以一个示意性的系统为例 ...

  7. appium的get_attribute方法

    转http://blog.csdn.net/bear_w/article/details/50330753 问题描述 当使用类似下面的代码获取元素的 content-desc 属性时,会报 NoSuc ...

  8. jenkins配置发送邮件时,日志中显示发送成功,但是邮箱没有收到邮件

    遇到这种问题,是因为安装的Email Extension Plugin插件版本与jenkins不兼容, 经试验2.39.3版本可以正常发送邮件,在jenkins主目录中 将2.39.3的文件和文件夹复 ...

  9. hdu2089(数位DP 递推形式)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. Java位运算(移位,位与,或,异或,非)

    1.左移( << ) // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:// // 0000 0000 0000 0000 0 ...