排序算法
温馨提示:
本文最后更新于 2025年06月16日,已超过 362 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
冒泡排序
/**
* 冒泡排序
* 时间复杂度: O(n^2)
* 空间复杂度: O(1)
* 稳定性: 稳定
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
// 定义一个标志位,判断是否已经有序了
// 若没有发生交换,则已经有序了,直接退出
boolean flag = true;
for (int j = 0; j < arr.length - 1 - i; j++) {
// 当 j 大于 j+1,交换,将较大值换到后面去
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
System.out.println(flag);
}
}
if (flag) {
// 没发生过交换
break;
}
}
}
直接排序
/**
* 直接排序
* 时间复杂度: O(N^2)
* 空间复杂度: O(1)
* 稳定性: 稳定
*
* @param arr
*/
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];
int j = i - 1;
for (; j >= 0; j--) {
if (arr[j] > temp) {
// 大于 temp,就向后移
arr[j + 1] = arr[j];
} else {
// 找到适合的位置,不用再往前找了,直接退出循环
break;
}
}
//给找到的位置赋值
arr[j + 1] = temp;
}
} 单例模式-双端检索
public class Singleton{
private volatile static Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
正文到此结束
- 本文标签: Java
- 本文链接: http://119.91.109.247:8443//article/96
- 版权声明: 本文由张亚东原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权