算法之冒泡排序

冒泡算法

假设给出n个无序的元素,要求从小到大排列。冒泡排序是非常见到的排序算法,

它同过相邻元素比较大小交换位置,第一次将最小的一个元素提到第一位,第二次将第二小的元素提到第二位,

最多经历n-1遍循环就可以把这组元素变为有序状态
1.相邻两个元素两两比较,找出最小的一个,冒泡(交换位置提到第一位)
2.找出第二小的一个,提到第二位
3.自然有序,终止循环

package com.dataStructure;

import java.util.ArrayList;
import java.util.List;

import org.omg.CORBA.DATA_CONVERSION;
/**
 * 
 * @author Sherman
 *
 */
public class BubbleSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    List<Integer> list=new ArrayList<Integer>();
    list.add(8);
    list.add(5);
    list.add(1);
    list.add(4);
    list.add(2);
    list.add(3);
    
    
    boolean exChange = false;//默认无序状态
    for(int i=list.size();i>0;i--){
        exChange = false;
        for(int j=list.size()-1;j>0;j--){
            if(list.get(j-1)>list.get(j)){
                int temp=0;
                temp=list.get(j-1);
                list.set(j-1, list.get(j));
                list.set(j,temp);
                exChange=true;
            }
            
        }
        if(false == exChange){
            break;
        }
        System.out.println(list.toString());
    }
    
    }

}

输出:

[1, 8, 5, 2, 4, 3]
[1, 2, 8, 5, 3, 4]
[1, 2, 3, 8, 5, 4]
[1, 2, 3, 4, 8, 5]
[1, 2, 3, 4, 5, 8]

相关推荐