`
sd4886656
  • 浏览: 88724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[原]Java 冒泡排序

 
阅读更多

 

package com.japher.j2se.sort;

public class BubbleSort 
{
	public static void main(String [] arg)
	{
		int [] src;
		
		src = createRandom(8,0,100);
		
		sort(src);
	}
	

	/** 冒泡排序,每趟都依次比较左右两个,从第一个到最后一个,每趟都是,共N-1趟即可,因为最差情况下完全倒序也只需要N-1次*/
	public static void sort(int [] src)
	{
		int temp;
		for(int num = 0 ; num<src.length-1;num++)
		{
			for(int i = 0 ; i< src.length-1;i++)
			{
				if(src[i]>src[i+1])
				{
					temp = src[i+1];
					src[i+1] = src[i];
					src[i]= temp;
				}
			}
			System.out.println("loop" + (num+1)+":");
			for(int element : src)
			{
				System.out.print(element+" ");
			}System.out.print("\n");
		}
	}
	
	
	
	
	public static int[] createRandom(int num,int start,int end) 
	{
		if(start >end)
		{
			System.out.println("end value is bigger than start");
			return null;
		}
		int [] des = new int[num];
		for(int i = 0 ; i<num ; )
		{
			des[i] = (int)Math.round(Math.random()*(end - start)+start);
			System.out.print(des[i]+" ");
			
			if( ++i%10 ==0)
			{
				System.out.print('\n');
			}
			
		}
		return des ;
	}
}

 

结果:

 

 

 

31 82 94 38 93 93 52 86

 

loop1:

31 82 38 93 93 52 86 94 

loop2:

31 38 82 93 52 86 93 94 

loop3:

31 38 82 52 86 93 93 94 

loop4:

31 38 52 82 86 93 93 94 

loop5:

31 38 52 82 86 93 93 94 

loop6:

31 38 52 82 86 93 93 94 

loop7:

31 38 52 82 86 93 93 94 

 

最后一趟是最终结果

 

其实冒泡排序主要依赖的是这样一个共识:比方10个数的话,我进行9次整理就能把它完全排序好,每次整理都从头到尾交换相邻的大小不符的两个,9次下来完全排序好。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics