冒泡排序优化JAVA
本文对传统的冒泡排序进行了一些优化,减少了循环次数。
时间复杂度

算法稳定性
/**
* 冒泡排序 JAVA
* 优化后的冒泡排序
* 增加一个isSort本轮是否进行了排序的判断,如果没有进行排序则说明排序已经结束直接退出
* @author Administrator
* @time 20160731
*/
public abstract class BubblingSort {
////////////////开始冒泡排序
public static int[] Sort(int[] array )
{
boolean isSort=false;//判断是否进行过排序,默认为没有进行排序,如果没有进行排序则直接结束
for (int i = 0; i < array.length-1; i++) {
isSort=false;//每轮排序前先将排序标识置位false
for (int j = 0; j < array.length-i-1; j++) {
if(array[j]>array[j+1])
{
int temp =array[j+1];
array[j+1]=array[j];
array[j]=temp;
isSort=true;//如果为true则本轮进行了交换,继续下一轮
}
}
if(!isSort)break;//如果本轮没有进行过循环,结果为false直接跳出,不进行下一轮的检索
}
return array; //return array
}
///////////结束冒泡排序
}
自己在里面加了个判断是否已经排序结束,如果排序已经完成,则立即结束排序,不进行继续循环检测!
我在另一个类里面调用的方法:
public class arithmetic_TestClass {
public static void main(String[] args) {
//测试数组 int 型
int array[]={4,9,5,3,7,6,8,3,2,1};
//冒泡排序 优化过的冒泡排序
array=BubblingSort.Sort(array);
for (int i : array) {
System.out.print(i+" ");
}
}
}
执行的结果如下:
1 2 3 3 4 5 6 7 8 9
成功实现!
冒泡排序优化JAVA的更多相关文章
- 怎么优化JAVA程序的执行效率和性能?
现在java程序已经够快的了,不过有时写出了的程序效率就不怎么样,很多细节值得我们注意,比如使用StringBuffer或者StringBuilder来拼接或者操作字符串就比直接使用String效率高 ...
- Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法
Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法 java.lang.OutOfMemoryError: Java heap sp ...
- jvm系列(十):如何优化Java GC「译」
本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...
- 冒泡排序之Java实现
冒泡排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; import java.util.Arrays; /** * * @title BubbleSo ...
- jvm系列(七):如何优化Java GC「译」
本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作. Sangmin Lee发表在Cubrid上的”Become a Java GC Expert”系列文章 ...
- jvm系列(十):如何优化Java GC「
转自:https://www.cnblogs.com/ityouknow/p/7653129.html 本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作. ...
- 冒泡排序,冒泡性能优化--java实现
冒泡排序说明: 一次比较两个元素,如果他们的顺序错误就把他们交换过来. 重复地进行直到没有再需要交换,也就是说已经排序完成. 越小的元素会经由交换慢慢“浮”到数列的顶端. 冒泡排序算法的运作如下: 比 ...
- 冒泡排序及优化(Java实现)
向大端冒泡 public class BubbleSort { public static <T extends Comparable<? super T>> void sor ...
- Java基础(45):冒泡排序的Java封装(完整可运行)
1.冒泡排序 package lsg.ap.bubble; import java.util.*; public class BubbleSort { public static void bubbl ...
随机推荐
- 异常Throwable类
所有异常类型都是Throwable类的子类,它派生出两个子类 Error和Exception Error类:表示紧靠程序本身无法恢复的严重错误,如内存溢出,动态链接失败,虚拟机错误 ...
- AIDL学习
(转自)可以参见:http://www.2cto.com/kf/201406/312244.html 1.为什么要有AIDL? 无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理,存在 ...
- 纸上谈兵:左倾堆(leftist heap)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前讲解了堆(heap)的概念.堆是一个优先队列.每次从堆中取出的元素都是堆中 ...
- skiplist
§1 Skip List 介绍 Skip List是一种随机化的数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间).基本上, 跳跃列表是对有序的链表增加上 ...
- (转)这个API很“迷人”——新的Fetch API
原文:https://hacks.mozilla.org/2015/03/this-api-is-so-fetching 原标题是This API is So Fetching,Fetching也可以 ...
- js图片变换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- struts2下s:iterator取不出值
1:问题起因:通过action方法连接数据库取出Arraylist集合,在前台页面遍历显示无数据,用s:debug查看 stack里有值,用了各种方法,包括session传值,但是仍然取不出来. 2: ...
- modelsim(1) - 安装和使用 心得
最近一段时间使用modelsim, 一,安装 使用的时候,出现license验证不对. 由于经常换虚拟机,要注意首先MAC地址是否换了,如果换了,license要重新做! 其次/etc/hosts的I ...
- JavaWeb项目连接Oracle数据库
参考网址:http://jingyan.baidu.com/article/0320e2c1d4dd0b1b87507b38.html 既然你要链接oracle数据库 ,那么首先就是先打开我们的ora ...
- codevs1230 元素查找
1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 给出n个正整数,然后有m个询问,每 ...