算法之冒泡排序
冒泡算法
假设给出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]