氣泡排序優化

2021-09-10 17:19:57 字數 643 閱讀 4553

話不多說,直接上**,最基本的冒泡:

public static void bubblesort1(int arr)}}

}

優化一:用標記位提前判斷有序性

public static void bubblesort1(int arr)

}if (!haschanged)

}}

優化二:記錄下最後一次交換的位置,表示其後面已經排好序

public static void bubblesort1(int arr)

}if(rank <= 0 )

}}

優化三:雙指標一次同時找到最大最小值(別人的,測試可用)

public static void bubblesort2(int arr)

int left = 0;

int right = arr.length-1;

int tmp;

while (left < right)

}right--;

for(tmp = right; tmp > left; tmp-- )

}left++;

}}

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

優化氣泡排序

氣泡排序 bubble sort 重複遍歷需要排序的數列,依次比較兩個元素,如果順序錯誤就進行交換,直到不再需要交換為止。演算法步驟如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元...

氣泡排序優化

氣泡排序優化 氣泡排序思想 內層迴圈數字兩兩比較,並交換,最後乙個數字成為最大數字 外層迴圈控制迴圈次數,不在將最後一位參與交換 冒泡改進 若內層迴圈沒有進行過一次交換,說明陣列已經有序,直接break 不需要再進行迴圈 includeusing namespace std int main int...