java中数组的排序(冒泡排序)。。

在java中我们通常需要对数组进行排序,增加阅读性。我们常用的就是选择排序和冒泡排序,选择排序在我之前的文章已经写过了,今天我们就来说一说这个冒泡排序。

冒泡排序是相邻的两个元素进行比较如果符合条件就换位,我们会发现最值在最后位,然后下次比较的话最后一位就不用参与比较了。原理就如图所示。​​​​​

                    

那么代码我们该怎么编写?我们可以发现每次循环都是从0角标开始的。然后我们开始写代码。

class Demo
 	 {
        	public static void selectSort(int [ ] arr)      
       { 
       	   for(int x=0;x<arr.length;x++ )
       	   	    {
       	   	   	for(int y=x+1;y<arr.length;y++ )
       			{
       				if(arr[x]>arr[y])
       				{
       					int temp=arr [x];
       					arr [x]=arr [y];
            					arr [y]=temp;
       			}
       		}	
       }
}       
 public static void main(String[ ] args)   
 	 {   
    int [ ]arr = {5,1,6,4,2,8,9};
           	//排序前
           	printArray(arr);
       	 // selectSort(arr);//选择排序
		bubblesort(arr);
       	 //排序后
       	 printArray(arr);
       }
public static void bubblesort(int [ ] arr)
	{
		for(int x=0;x<arr.length-1;x++ )
		{
			for(int y=0;y<arr.length-x-1;y++ )
				{
       				if(arr[y]>arr[y+1])
       				{
       					int temp=arr [y];
       					arr [y]=arr [y+1];
            					arr [y+1]=temp;
       			}
       		}	
       }
}       

public static void printArray(int [ ] arr)   
	{
		 System.out.print("["); 
		 for(int x=0;x<arr.length;x++ )      
         { 
         	 if(x!=arr.length-1)
         	 	 System.out.print(arr[x ]+","); 
         	 else
         	 	 System.out.println(arr[x ]+"]");  
         }
	}
}

这个代码之中包括了之前的选择排序和冒泡排序,我们在用那个排序直接调用即可。我们在写这个冒泡排序的代码是一定要注意y<arr.length-x-1这个后面的-1,因为如果没有这个-1的话会运行是会运行的,但是排序是排不了的。会出现如图所示。

 只会出现排序前的数组,出现不了排序后的数组。

然后我们写上-1之后就会正常运行并且出现我们想要的结果了。        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

这个冒泡排序和选择排序其实相差不太大,我们掌握原理之后再写代码就会简单许多,这两个排血在我们日常使用是都可以用的,主要看自己掌握的熟练程度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值