排序算法-冒泡排序
这次所说的冒泡算法是一种比较简单的排序算法,冒泡排序也可以叫做交换排序,其主要思路是:
排序过程中只交换相邻两个元素的位置依次递推,将最大值依次向后传递(由小到大排序)。当
两个数相等时,是没必要交换两个数的位置的。所以,它们的相对位置并没有改变。
例:将2,6,1,5,3,8,由小到大排序:
这只是第一次循环后的结果,之后经历第一次、第二次......(循环次数:a.length-1,<数组 a>)后,
排出有序j结果。
相关实现代码:
package cn.zbvc.sorting; public class BubbleDem { // // /** // * 冒泡排序 // */ public void bubbleDem(){ int [] a = {2,6,1,5,3,8};
//数组长度为a.length,由于是前后两两比较,所以循环a.length-1次 for(int i = 0;i < a.length-1;i++){
//比较相邻两个数,将大的值向后放 for(int j = 0;j < a.length-i-1;j++){ if(a[j] > a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } }
//打印排好序的数组 for(int i = 0;i<a.length;i++){ System.out.print(a[i]+" "); } } }
测试用例:
package cn.zbvc.test; import org.junit.Test; import cn.zbvc.sorting.BubbleDem; public class TestBubble { @Test public void testBubble(){ BubbleDem bubbleDem = new BubbleDem(); bubbleDem.bubbleDem(); } }
运行结果:
1 2 3 5 6 8