java 之冒泡排序
冒泡排序:可以想象成煮开水,气泡在瓶底的时候是比较小的,到达水面的时候达到最大。
冒泡排序的思想:先确定是升序还是降序,这里升序为例。每两个相邻的数字进行比较,前一个数字比后面一个数字大,就将两个数字交换位置,否则位置不变继续下一个。一轮排序之后,数组中最大的数字一定是在最后。
伪代码:
数组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 之冒泡排序的更多相关文章
- Java版冒泡排序和选择排序
一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...
- Java之冒泡排序(升序)
Java之冒泡排序 * 编辑者:鸿灬嗳 * 实现功能: 使用冒泡排序对数组:{25,24,12,76,101,96,28} 排序. */ package test05; public class Bu ...
- java 数组冒泡排序、转置(降序)
1.java 数组冒泡排序 排序的基本原理(升序): 原始数据: 2 .1 .9 .0 .5 .3 .7 .6 .8: 第一次排序: 1 .2 .0 .5 .3 .7 .6 .8 .9 : 第二次 ...
- Java实现冒泡排序
冒泡排序思想就是将数列的相邻两个数比较,较大的数往后保存,小的数往前. package Sort; import java.util.Arrays; public class BubbleSort { ...
- Java冒泡排序,Java对象冒泡排序
今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...
- JAVA排序--[冒泡排序]
package com.array; public class Sort_MaoPao { /** * 项目名称:冒泡排序 * 项目要求:用JAVA对数组进行排序,并运用冒泡排序算法 * 作者:Sev ...
- Java基础 -- 冒泡排序算法(带详细注释)
冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...
- 【Java SE】如何用Java实现冒泡排序
摘要: 作为一名Java开发工程师,手头如果不会几个常见的排序算法,怎么可能经过笔试题这一关呢.据我所知,许多大型的公司的笔试题都有排序题,那我们先从最简单的排序:冒泡排序开始,以后几篇博客将继续更新 ...
- java:冒泡排序、选择排序、插入排序实现
整数排序 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法. 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] ...
- Java实现冒泡排序,选择排序,插入排序
冒泡排序: 思想: 冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说排序完成 特点:比较稳定,排序数较小是 ...
随机推荐
- 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 ...
- [MAC] Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead.
MAC启动GoAgent,出现Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead. 解决方法:为Python安装pycrypto,可通过Py ...
- YTU 2432: C++习题 对象数组输入与输出
2432: C++习题 对象数组输入与输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 1603 解决: 1152 题目描述 建立一个对象数组,内放n(n<10)个学生的数据( ...
- Maven运行测试
原文:http://tianya23.blog.51cto.com/1081650/292315/ Maven运行用于测试中的最佳实践(个人认为,呵呵) 1.创建maven工程 mvn arche ...
- Python基础第八天
一.内容
- 《JAVA与模式》之解释器模式
解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 解释器模式的结构 下面就以一个示意性的系统为例 ...
- appium的get_attribute方法
转http://blog.csdn.net/bear_w/article/details/50330753 问题描述 当使用类似下面的代码获取元素的 content-desc 属性时,会报 NoSuc ...
- jenkins配置发送邮件时,日志中显示发送成功,但是邮箱没有收到邮件
遇到这种问题,是因为安装的Email Extension Plugin插件版本与jenkins不兼容, 经试验2.39.3版本可以正常发送邮件,在jenkins主目录中 将2.39.3的文件和文件夹复 ...
- hdu2089(数位DP 递推形式)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Java位运算(移位,位与,或,异或,非)
1.左移( << ) // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:// // 0000 0000 0000 0000 0 ...