摘要:

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

  冒泡排序的原理:他的基本原理就是和相邻的元素值进行比较(这里特指和数组比较),如果满足条件就交换元素值,把较小的元素和较大的元素交换,这样小的元素就像小气泡一样从底部上升到顶部,大的元素就像大气泡一样从顶部下沉到底部。

1.适宜人群:有一定Java SE基础的同学,明白Java的数据类型,数组的定义、初始化以及常用数组的方法,还有Java的循环操作。

2.前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点。

3.算法实现:

public class BubbleSort{
public static void main(String[] args){
//首先创建一个无序的数组。
int[] array = {100,120,530,1,2,48,26};//int[] array和int array[]都可以,但是推荐使用前者
//创建冒泡排序类的对象
BubbleSort arraySort = new BubbleSort();
//调用排序方法将数组排序
arraySort.sort(array);
}
public void sort(int[] array){
for(int i= 1;i<array.length;i++)
{
//开始比较相邻元素的值,大元素下沉
for(int j=0;j<array.length-i;j++){
if(array[j]>array[j+1]){
//满足条件就交换两个元素的值
int temp = array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
showArray(array);
}
//显示数组中的所有元素
public void showArray(int[] array){
//这里使用的一种不常见的foreach循环,不习惯这种写法的可以用for循环
/*
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+" ");
}
*/
for(int i:array)
{
System.out.print(i+" ");
}
}
}

4.冒泡排序的优缺点:

优点:比较简单,空间复杂度较低,是稳定的。优点:
缺点:时间复杂度太高,效率不好。

5.后记:冒泡排序是排序算法的第一课,也是个人认为最容易入手的一个排序算法,后续我将为大家介绍更多实用但更复杂的排序算法。

【Java SE】如何用Java实现冒泡排序的更多相关文章

  1. 【Java SE】利用Java的for循环加random制作小学试卷

    前期介绍:很多同学以为学习一门编程语言,一定要学到很高深的时候才可以做项目,其实不然,很多时候我们不需要学到面向对象的思想,就可以从事一些小项目的开发,来增加自己对开发的热情,比如现在我就可以利用Ja ...

  2. Java SE教程

    第0讲 开山篇 读前介绍:本文中如下文本格式是超链接,可以点击跳转 >>超链接<< 我的学习目标:基础要坚如磐石   代码要十份规范   笔记要认真详实 一.java内容介绍 ...

  3. Using Headless Mode in the Java SE Platform--转

    原文地址: By Artem Ananiev and Alla Redko, June 2006     Articles Index This article explains how to use ...

  4. Java SE、Java EE和Java ME有什么区别?

    Java现在已不仅仅是一种语言,从广义上说,它代表了一个技术体系.该体系根据应用方向的不同主要分为Java SE.Java EE和Java ME的3个部分. 1998年12月份Sun公司公布的Java ...

  5. Oracle Java SE远程安全漏洞(CVE-2013-5878)

    漏洞版本: Oracle Java SE 7u45 Oracle Java SE 6u65 漏洞描述: BUGTRAQ ID: 64927 CVE(CAN) ID: CVE-2013-5878 Jav ...

  6. Monitor and diagnose performance in Java SE 6--转载

    Java SE 6 provides an in-depth focus on performance, offering expanded tools for managing and monito ...

  7. 在 Java SE 6 中监视和诊断性能问题

    Java™ Platform, Standard Edition 6 (Java SE) 专注于提升性能,提供的增强工具可以管理和监视应用程序以及诊断常见的问题.本文将介绍 Java SE 平台中监视 ...

  8. Java SE/EE/ME概念理解(Java版本发展历史)

    继上一篇文章http://www.cnblogs.com/EasonJim/p/6181981.html中说的区别,其实分析的不够彻底,因此再次在这里做详细的分析. 零.Java与Sun.Oracle ...

  9. Eclipse Java SE升级Java EE

    网上教程大多是提供了“http://download.eclipse.org/releases/ganymede/”地址,但是实际更新过程中会报错. 大致查询了一下,很可能是版本不匹配的问题,正确的更 ...

  10. java se系列(一)开发前奏

    1. 软硬件知识 电子计算机:俗称电脑,是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机 cpu:是一台计算机的运算核心和控制核 ...

随机推荐

  1. 服务器 ADO 错误:0x80004005,[DBNETLIB]

    2012-12-0310:44:06 ]ADO 错误:0x80004005,[DBNETLIB][ConnectionOpen(Connect()).]SQL Server 不存在或拒绝访问.[ 20 ...

  2. Servlet+jsp的分页案例

    查询的分页,在web中经常用到.一般,分页要维护的信息很多,我们把这些相关的信息,分装到一个类中,PageBean.具体如下: package cn.itcast.utils; import java ...

  3. (20)IO流之SequenceInputStream 序列流

    序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直 ...

  4. 用Qemu搭建aarch32学习环境

    作者信息 作者: 彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linu ...

  5. 撸一个Android高性能日历控件,高仿魅族

    Android原生的CalendarView根本无法满足我们日常开发的需要,在开发吾记APP的过程中,我觉得需要来一款高性能且美观简洁的日历控件,觉得魅族的日历风格十分适合,于是打算撸一款. gith ...

  6. iOS开发之NSObject的多线程

    1.NSObject的多线程方法(用的时候要用@autoreleasepool{}包起来) 开启后台执行任务的方法: - (void)performSelectorInBackground:(SEL) ...

  7. mac下重启apach

    打开终端 重启apache:sudo /usr/sbin/apachectl restart 关闭apache:sudo /usr/sbin/apachectl stop 开启apache:sudo ...

  8. js中的this关键字,setTimeout(),setInterval()的执行过程

    var test1 = { name: 'windseek1', showname: function () { console.log(this.name); } } var test2 = { n ...

  9. Oracle ASM数据库故障数据恢复过程

    一.故障描述 ASM磁盘组掉线 ,ASM实例不能mount.ASM磁盘组有4个500G的磁盘组成,数据库和ASM软件为10.2.0.1,急需恢复oracle数据库.二.故障分析   分析组成ASM磁盘 ...

  10. 老李分享:接电话之uiautomator 2

    case解释 首先要了解进入uiwatcher方法中的机制,是在你某个控件找不到的情况下会进入.但是你得保证进入以后处理完来电界面以后,这条case得保证正确,那么说明回来以后这个控件要能找到.刚开始 ...