一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
代码
void bubbleSort(int[] arr){
if (arr == null || arr.length == 0) {
return;
}
for (int i = 0; i < arr.length; i++) {
boolean hasSwap = false; //标记位, 默认为false
for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j-1]) {
hasSwap = true; // 如果有数据交换,则标记为置为true
swap(arr, j, j - 1);
}
}
if (!hasSwap) { //如果上次循环里没有数据交换,说明已经排好序了,直接break
break;
}
}
}
网友评论