java排序算法之冒泡排序

1、循环趟数

 2、每趟比较元素发生变化,与条件一有关

3、前两点把握正确,忽略第三点,算法终止条件及其优化,当不发生交换时,算法终止

代码如下:

package althorgrim;


/**
 * 冒泡排序
 * @author hanrk-2734
 *
 */
public class TestBubble {
	
	//注意算法的终止条件,优化终止条件,可以提供算法效率,此算法没有考虑到没有发生比较时,便停止排序
	public static void bubleSort(int a[]) {
		
		boolean flag=true;
		
		for (int i = 0; i < a.length - 1&&flag; i++) {
			flag=false;
			for (int j = 0; j < a.length-1 - i; j += 1) {

				if (a[j] > a[j + 1]) {
					swap(a, j, j+1);
					//每趟发生交换才进行下一趟排序,所以标示
					flag=true;
				}

			}

		}
	}

	private static void swap(int[] number, int i, int j) {
		int t;
		t = number[i];
		number[i] = number[j];
		number[j] = t;
	}

	public static void main(String[] args) {
		int[] a = new int[] {26, 3, 42, 13, 8, 0, 122 };
		bubleSort(a);
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}
}


 

你可能感兴趣的:(java排序算法之冒泡排序)