#Java中基础排序算法之冒泡排序#

#Java中基础排序算法之冒泡排序#
1.排序概念理解
将一组杂乱无章的数据按一定的规律顺次排列起来。数据表( data list): 它是待排序数据对象的有限集合。排序码(key):通常数据对象有多个属性域,即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为排序码。每个数据表用哪个属性域作为排序码,要视具体的应用需要而定。
2.冒泡排序原理
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
我们可以把冒泡排序看成生活中冒气泡的方式,从下往上冒,依次把最大或最小的值冒到最顶层。例如:一个整型数组int[] i = {3,2,4,5,1};其排序后的结果,如图:
在这里插入图片描述
深入分析冒泡排序过程,如下图所示,
在这里插入图片描述
冒泡排序逻辑思维:
1)利用for嵌套循环实现循环判断并排序,外层循环控制循环次数,如果数组长度(length)为5,最多就比较4轮,所以数组的索引从0开始,要循环4次,故应该是长度-1;
2)内层for循环,并结合if条件选择,控制每一轮中的元素下标(索引)位置,每结束一轮,就会判断出当前最大值,为了减少判断,故在长度-1同时还要再减控制循环次数,直到最后一次循环判断,冒泡顺序就整理结束,终止循环.
3.冒泡排序代码实现
例如:一个整型数组int[] i = {3,2,4,5,1},代码实现冒泡排序,并输出打印结果为[1,2,3,4,5].

public class BubbleSortTest{
 public static void main(String[] args){
  int[] arr={13,58,8,15,22,1}; 
  arr=bubbleSort(arr);
  BeautifulPrint.print(arr);
 }
 static int[] bubbleSort(int[] arr){
       //一共要执行4次冒泡 数组长度为5  冒泡的次数 length-1
  for(int j=0;j<arr.length-1;j++){
     //第一次冒泡 -j是为了少判断
   for(int i=0;i<arr.length-1-j;i++){
    if(arr[i]>arr[i+1]){
      int temp=arr[i];
      arr[i]=arr[i+1];
      arr[i+1]=temp;
    }
   }
  }
     return arr;
 }
}
public class BeautifulPrint {
 public static void main(String[] args){
  int[] arr={1,3,6,4,2,5};
  print(arr);//希望的打印格式[1,2,3,4,5]
 }
 static void print(int[] arr){
      System.out.print("[");
   for(int i=0;i<arr.length;i++){
      System.out.print(arr[i]);
   //判断遍历是不是最后一位
   if(i!=arr.length-1){
      System.out.print(",");
   }
   }
   System.out.print("]");
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值