选择排序法,冒泡排序的优化
直接上代码吧:
class xuanze { public static void main(String[] args) { int[] array = {5,3,6,2,87,8,124,79,0,4,5}; int z = 0; for (int i = 0; i < array.length - 1; ++i) { z = i; for (int j = i + 1; j < array.length; ++j) { if (array[j] < array[z]) { z = j; } } if (i != z) { array[i] += array[z]; array[z] = array[i] - array[z]; array[i] -= array[z]; } } for (int x : array) { System.out.printf("%4d",x); } } }选择排序比冒泡排序优化的地方在于交换值的次数上.
两种排序方法中做比较计算的次数都是相同的,为N(N+1)/2次(N是数组长度).
冒泡排序中做值交换的最大次数可能达到N(N+1)/2次.
选择排序中做值交换的最大次数只有N次.
如果N值在很大的时候选择排序比冒泡排序所做的操作就要少很多.