冒泡排序实现原理
1.从待排序的序列中,依次比较相邻的两个元素,如果前者大于后者,则交换它们的位置,直到比较到最后一个元素。
2.重复上述过程,每次都从第一个元素开始比较,直到比较到倒数第二个元素。
3. 经过一轮的比较,最大的元素已经被交换到了序列的最后面。
4. 重复上述过程,每次比较的元素减少一个,直到比较到第二个元素为止。
5.最终,整个序列按照从小到大的顺序排列完成。
冒泡排序的时间复杂度为O(n^2),其中n为待排序序列元素的个数。虽然冒泡排序算法简单,但是在实际应用中由于其效率较低,所以一般不推荐使用。
使用Java实现代码
public static void bubbleSort(int arr[]) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
// 标志位,用于检测本趟排序是否发生了交换
boolean swapped = false;
for (int j = 0; j < n - i - 1; j++) {
// 如果当前元素大于下一个元素,则交换它们
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// 发生了交换,标志位设为true
swapped = true;
}
}
if (!swapped) {
break;
}
}
}