選擇排序法,冒泡排序的優化
直接上代碼吧:
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); } }
}</pre>選擇排序比冒泡排序優化的地方在于交換值的次數上.</div>
兩種排序方法中做比較計算的次數都是相同的,為N(N+1)/2次(N是數組長度).冒泡排序中做值交換的最大次數可能達到N(N+1)/2次.選擇排序中做值交換的最大次數只有N次.如果N值在很大的時候選擇排序比冒泡排序所做的操作就要少很多.
本文由用戶 灬猜想灬 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!