冒泡排序

冒泡排序

** 冒泡排序思想:**

比较两个元素的关键字值,若按升序排序,则每一次将被扫描的数据序列中的最大元素交换到最后位置;
外层循环:进行最多n-1次扫描
内层循环:进行一趟扫描的比较和交换

代码实现:

public static void bubbleSort(int[] table) {
		int length = table.length;
		for (int i = 1; i < length; i++) {
			for (int j = 0; j < length-i; j++) {
				if (table[j] > table[j+1]) {
					int temp = table[j];
					table[j] = table[j+1];
					table[j+1] = temp;
				}		
			}
			System.out.println("第"+i+"次: ");
			for (int k = 0; k < length; k++) {
				System.out.print(table[k]+"  ");
			}
			System.out.println("");	
		}
	}

时间复杂度
最好情况:O(n), 最坏:O(n^2)
平均:O(n^2)
空间复杂度
空间复杂度:O(1),是稳定排序方法

posted @ 2017-02-21 14:32  starryfei  阅读(111)  评论(0编辑  收藏  举报