排序之冒泡排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序之冒泡排序相关的知识,希望对你有一定的参考价值。
冒泡排序
- 原理:在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序
- 冒泡排序是一个稳定的排序
实现方式
public void bubbleSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
//定义标志位来判断待排序区间是否有序
boolean isSorted = true;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
//只要发生交换说明待排序区间初始并不是有序
isSorted = false;
}
}
if(isSorted) {
break;
}
}
}
private void swap(int[] array, int i, int j) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
性能分析
- 时间复杂度:
- 最好的情况:待排序有序时,时间复杂度为O(N)
- 最坏的情况:待排序逆序时,时间复杂度为O(N^2)
- 平均情况:时间复杂度 为O(N^2)
- 空间复杂度:O(1)
- 稳定性:稳定
- 初始数据越接近有序,时间效率越高
以上是关于排序之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章