冒泡排序的基本原理
冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次遍历待排序的元素,比较相邻元素的大小,并交换它们直到整个序列有序。冒泡排序的基本思想是将较大的元素逐渐“浮”到数组的右端,而较小的元素逐渐“沉”到数组的左端。其基本原理如下:
- 从数组的第一个元素开始,比较相邻的两个元素。
- 如果前一个元素大于后一个元素(升序排序),则交换它们的位置。
- 步骤1和步骤2,直到遍历整个数组。
- 上步骤,每次遍历都将最大的元素“冒泡”到数组的末尾。
- 复以上步骤,但不包括已排序的最大元素,直到整个数组排序完成。
代码:
private static void bubbleSort(int[] arr) {
int length = arr.length;
for (int i = length-1; i > 0; i--) {
for(int j=0;j<i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
因为冒泡算法是相邻两个比较,如果某轮没有交换,则说明数据已经排序好了,直接返回即可
private static void bubbleSort(int[] arr) { int length = arr.length; boolean needSwap=false; for (int i = length-1; i > 0; i--) { for(int j=0;j<i;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; needSwap=true; } } if(!needSwap){ return ; } } }