冒泡法

 
package arithmetic;
import java.util.Arrays;
import Test.TestInterface;
public class BubbleSort implements TestInterface   {
	public static void main(String args[])
	{
		int a [] = new int[] {4,5,1,3,6};
		//bubbleSortOne(a);
		bubbleSortOne(a);
		System.out.println(Arrays.toString(a));
	}
	/*
	 * 	这个冒泡准确的来说应该是沉底,把大的沉到了下面,
	 * 	下回比较的时候直接从0比较到上次比较到的前一个
	 * */
	public static void bubbleSortOne(int a[])
	{
		for(int i=0;i<a.length;i++)
			for(int j=0;j<a.length-i-1;j++)
				if(a[j]>a[j+1])
					swap(a,j,j+1);
	}
	/*
	 * 	插入法:
	 * */
	public static void bubbleSortTwo(int a[])
	{
		for(int i=0;i<a.length;i++)
			for(int j=i;j>0&&a[j]>a[j-1];j--)
					swap(a,j-1,j);
	}
	public static void swap(int a[],int i,int j)
	{
		int tmp = a[i];
		a[i] = a[j];
		a[j] = tmp;
	}
	public void test(int a[])
	{
		//bubbleSortOne(a);
		bubbleSortTwo(a);
	}
}

你可能感兴趣的:(冒泡法)