Java中的冒泡排序(减少比较次数)
生活随笔
收集整理的這篇文章主要介紹了
Java中的冒泡排序(减少比较次数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package yzhou.sort;import java.util.Arrays;public class BubbleSort
{public static void main(String[] args){int[] arr ={ 9, 1, 2, 5, 4 };sort(arr);System.out.println(Arrays.toString(arr));}// 減少每一趟的次數public static void sort(int[] arr){boolean sorted = true;int len = arr.length;for (int j = 0; j < len - 1; j++){sorted = true;System.out.println("第" + j + "趟");for (int i = 0; i < len - 1 - j; i++){System.out.println("第" + (i + 1) + "次");if (arr[i] > arr[i + 1]){int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;sorted = false;}System.out.println(Arrays.toString(arr));}if(sorted){break;}}}
}
?
boolean sorted = true; 作用:
冒泡排序,for循環始終比較兩者之間的大小
先定義個boolean類型變量,假設等于 true,意思是:有些數據已經排序好,不要在去比較了
int[]? 1,2,3,4,6
1 比較2? sorted = true;
2 比較3? sorted = true;
3 比較4? sorted = true;
4 比較6? sorted = true;
當sorted = true? ,意味著,這些數據,已經排好序,小的在左邊,大的在右邊,不然,if條件成立的話,sorted = false;
int[] 1,3,2,7,8
1 比較3? sorted = true;
3 比較2? sorted = false;
…….
if條件成立,sorted = false,,說明,當前的數組中,有部分數據的左邊大于右邊
轉載于:https://www.cnblogs.com/zychengzhiit1/p/4808983.html
總結
以上是生活随笔為你收集整理的Java中的冒泡排序(减少比较次数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT 学习资源汇总
- 下一篇: Java String,StringBu