冒泡排序
程序员文章站
2022-05-20 21:35:04
...
1.算法定义
将序列中的元素两两比较,如果不相等,就交换,以此类推,共比较n轮
2.示例
int str={18,8,15,9,5,3,8,1} 通过冒泡排序按从小到大升序排列
第一轮结果:8,15,9,5,3,8,1,18
第二轮结果:8,9,5,3,8,1,15,18
以此类推:每次去i={1,,n-2}位置所在的元素跟(0,n-2-i)元素比较
每次比较完后,大的元素每次都往上冒,冒泡算法因此得名
3.时间复杂度
最好的时间o(n)=n,这样的情况是已经拍好序了
最坏的情况o(n)=n^2,
3.java
import java.util.Comparator;
import java.util.stream.Stream;
public class BubbleSort {
public static <T extends Comparable<T>> T[] bubbleSort(T[] arr) {
for (int i = 1; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j].compareTo(arr[j + 1]) > 0) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
public static void main(String[] args) {
Integer[] elements = {8, 15, 9, 3, 8, 1, 18};
elements = bubbleSort(elements);
for (int i = 0; i < elements.length; i++) {
System.out.println(elements[i]);
}
}
}
上一篇: 课程设计:迷宫问题的求解
下一篇: 微信小程序左上角返回按钮跳转到指定页面