java算法—冒泡排序

冒泡排序算法是排序算法里面基础算法之一,理解简单,编程难度小,但是初学比较难,我把自己的心得写下来,希望可以帮到初学者!下面通过一个例子来看一下:
冒泡排序;对一组整数从小到大进行排序
首先先定义一个数组,并将其初始化;

int[] A= {34,53,12,32,56,17};

既然是从小到大排序,也就是大数在后,小数在前,两数比较,大数向后。
第一趟:
先把34和53比较,34<53,故不换位置;再53和12比较,53>12,交换位置;53再和32比较53>32,交换位置;53再和56比较;53<56,位置不变;56和17比较,56>17,交换位置。经过一趟下来,就变成34,12,32,53,17,56。
第二趟:
34和12比较,34>12,交换位置;34和32比较,34>32,交换位置;34和53比较,34<53,位置不变;53和17比较,53>17,交换位置;经过一趟下来,就变成12,32,34,17,53,56。
第三趟:
12和32比较,12<32,位置不变;32和34比较,32<34,位置不变;34和17比较,34>17,交换位置;34和53比较,34<53,位置不变;经过这一趟下来,就变成了12,32,17,34,53,56。
第四趟:
12和32比较,12<32,位置不变;32和17比较,32>17,交换位置;32和34比较,32<34,位置不变。就变成了
12,17,32,34,53,56。这趟下来我们可以看到已将从小到大排列好了,但是计算机并不知道,所以还要继续。

第五趟:
12和17比较,12<17,位置不变;
就可以得到:
12,17,32,34,53,56

到此冒泡排序完成。
下面是整体代码;

package com.qhit.Arrays;
/**
 * 冒泡排序
 * @author 梁雪
 *
 */
public class Mao {
  public static void main(String[] args) {
   int[] A= {34,53,12,32,56,17};
   System.out.println("未排序");
   for(int i:A) {
	   System.out.print(i+"  ");
   }
   for(int i=0;iA[j+1]) {
			   int temp=A[j];
			   A[j]=A[j+1];
			   A[j+1]=temp;
		   }
	   }
   }
   System.out.println("\n排序后");
   for(int q:A) {
	   System.out.print(q+"  ");
   }
}
}

未排序
34 53 12 32 56 17
排序后
12 17 32 34 53 56

你可能感兴趣的:(算法)