`
MYF_cookie_
  • 浏览: 1651 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

java算法之冒泡排序

 
阅读更多
package test.base.sort;

/**冒泡排序
 * 每完成一次排序,找出一个最大数。是一种稳定排序算法。
 * 冒泡排序算法的运作如下: 
 * 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
 * 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
 * 3、针对所有的元素重复以上的步骤,除了最后一个。
 * 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
 * 
 * @author sky
 * 
 */
public class BubbleSorting {
	
	public static int[] bubbleSort(int[] arr) {
		boolean swap = true;
		//长度-1次,剩余最后一个元素不用比较
		for (int i = 0; i < arr.length - 1; i++) {
			swap = false;
			//排序完成的不用再继续比较
			for (int j = 0; j < arr.length - i - 1; j++) {
				if(arr[j] > arr[j + 1]){
					swap(arr, j, j + 1);
					swap = true;
				}
			}
			//没有位置调整,冒泡完成
			if(!swap){
				break;
			}
		}
		return arr;
	}
	//交换元素
	public static void swap(int[] arr, int index1, int index2){
		int tmp = arr[index1];
		arr[index1] = arr[index2];
		arr[index2] = tmp;
	}
	
	public static void traverse(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	public static void main(String[] args) {
		int[] arr = new int[] { 9, 5, 1, 7, 3, 2, 4, 6 };
		traverse(bubbleSort(arr));
	}
	
}

 

2
0
分享到:
评论
1 楼 JerryDwan 2014-05-14  
这是个基本的冒泡排序,其中使用了旗标与右端左移两种方法来改进排序;更高效的方法可以使用ShakerSort排序。

相关推荐

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    java基础 经典算法之冒泡排序详解

    1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...

    java基础冒泡排序.ppt

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...

    Java算法之冒泡排序实例代码

    今天小编就为大家分享一篇关于Java算法之冒泡排序实例代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    java算法,快速排序、冒泡排序、选择排序

    java算法,快速排序、冒泡排序、选择排序 快速排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51822361 冒泡排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51819045

    java 算法之冒泡排序实例详解

    主要介绍了java 算法之冒泡排序实例详解的相关资料,冒泡排序,就是模仿泡泡从水中浮起跑到水面的过程需要的朋友可以参考下

    [Java算法-排序]冒泡排序.java

    该资源提供了Java中实现冒泡排序的全面指南。文档中涵盖了冒泡排序的基本概念,包括如何对数组进行排序以及如何在Java中实现冒泡排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现冒泡排序,包括详细的...

    冒泡排序 算法(冒泡,选择,插入,数组排序)

    //冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] &gt; a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...

    Java后端算法-冒泡排序和选择排序对比

    Java后端算法-冒泡排序和选择排序对比

    用Java写出冒泡排序的算法

    如何用Java写出冒泡排序的算法,希望对大家有所帮助

    使用Java与Python实现的十大排序算法之冒泡排序

    冒泡排序是最基础的排序算法之一,但它并不是最优的排序算法。 1. 算法思想 冒泡排序是将数据中的每个数与相邻数进行比较并交换,大数往上冒,小数往下沉,每个数都遍历一次后便可以排出顺序。 2. 算法步骤 (1)...

    详解Java常用排序算法-冒泡排序

    详解Java常用排序算法-冒泡排序

    java冒泡排序java冒泡排序集锦方法!

    java冒泡排序集锦方法!所有的方法都有!很不错的!希望对大家有帮助哈哈!

    Java冒泡排序算法

    Java语言实现的冒泡排序算法,代码里头有详细注释,注释皆为简单英文,这个算法比较经典,欢迎新手下载学习使用,欢迎后期的学习交流!

    JAVA冒泡排序和快速排序算法

    JAVA冒泡排序和快速排序算法,符合实验报告要求哦

    JAVA冒泡排序及其优化

    用java 编写的冒泡排序算法,并涵盖了冒泡排序算法的几种优化方式,以及在冒泡排序上的二分查找法。

    用java实现冒泡排序算法

    用java实现冒泡排序算法,开发者必会的几种算法

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    JAVA冒泡排序算法

    冒泡排序算法详细分析那还等hi实地阿基hihi大UI一及对阿迪年hiue一群

Global site tag (gtag.js) - Google Analytics