Java实现冒泡排序
2015-06-08 15:20
471 查看
冒泡排序
一、算法描述冒泡排序是最简单的一种交换排序,其主要思想是:重复走访要排序数组的元素,将相邻的两个元素作比较,若反序就交换它们的位置,直到数组中再没有可以相互交换位置的两个元素。那么该数组已经是一个排序成功的数组。
下面举例分析:
二、算法分析
冒泡排序算法的执行时间取决于排序的趟数。
最好的情况:
待排数组是正序,那么该算法只需要执行一次,即进行了n-1次的元素间比较,并不需要交换元素的位置。其时间复杂度为:O(n)。
最坏的情况:
待排数组是反序,那么该算法需要执行n-1次,即每一趟排序都只有一个最大元素被移动到数组尾部,其时间复杂度为:O(n²)。
在平均情况下,冒泡排序的时间复杂度与最坏情况的时间复杂度同数量级。
冒泡排序是一种稳定的排序方法。
三、算法实现(主要代码)
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; //把临时变量保存到第二个元素中 } }
相关文章推荐
- java实现读取文件中的iP字段
- Struts2的文件上传和下载
- eclipse的注释模板
- Java中线程用法总结
- Eclipse打JAR包,插件FatJar安装与使用
- spring mvc 基于maven的完整demo
- 配置spring
- Java核心技术图
- Eclipse快捷键
- java POI操作Excel文件(合并单元格、插入图片、超链接)
- java基础二之基本数据类型
- java 、sql 时间格式化区别
- 《java短串的生成》
- 重新打开老Eclipse工作空间后JAD插件无法正常工作
- eclipse调试java程序的个别技巧
- ubuntu 下 eclipse Ctrl+Alt+Down 不工作
- Java多线程的wait(),notify(),notifyAll()
- java常量池概念
- Java中泛型的用法总结
- Vijava 学习笔记之(VirtualMachine 与HostSystem 宿主关系)