排序算法-冒泡排序

排序算法-冒泡排序

这次所说的冒泡算法是一种比较简单的排序算法,冒泡排序也可以叫做交换排序,其主要思路是:

排序过程中只交换相邻两个元素的位置依次递推,将最大值依次向后传递(由小到大排序)。当

两个数相等时,是没必要交换两个数的位置的。所以,它们的相对位置并没有改变。

例:将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 

原文地址:https://www.cnblogs.com/guolun/p/7251161.html