
获得徽章 0
- #青训营 x 字节后端训练营#
冒泡排序
思想:两两比较相邻位置大小,若逆序,则交换位置,直到交换末尾为一趟,共交换n-1趟...
过程
- 升序排序时,比较相邻的两个数据,如果第二个数小,就交换位置。
- 从前向后两两比较,一直到比较最后两个数据。最终最大数会被交换到到后一个位置,这就完成了一趟排序。一共会进行n-1趟排序,且注意每次排序好的元素下一次不再进行排序。
- 继续重复上述过程,依次将第2.3...n-1个最小数排好位置。
特点:
- 每趟排序都会有一个元素落在最终位置
- 稳定
实现代码
//从前往后排
for (int i = 0; i < arrays.length - 1; i++) {//n个数排序,只要n-1趟
for (int j = 0; j < arrays.length - 1 - i; j++) {//因为有j+1,所以下标写到n-1-i
int temp;
if (arrays[j] > arrays[j + 1]) {
temp = arrays[j];
arrays[j] = arrays[j + 1];
arrays[j + 1] = temp;
}
}
}
时间复杂度O(n)展开评论点赞 - #青训营 x 字节后端训练营# pods发现CrashLoopBackOff 的常见原因
重要的是要注意 CrashLoopBackOff 不是导致 pod 崩溃的实际错误。请记住,它只是显示STATUS列中发生的循环。您需要找到影响容器的潜在错误。
与实际应用程序相关的一些错误是:
错误配置:就像配置文件中的错字。
资源不可用:例如未挂载的 PersistentVolume。
错误的命令行参数:要么丢失,要么不正确。
bug 和异常: 这可以是任何异常,对你的应用来说都是非常具体的。
最后,来自网络和权限的错误是:
您试图绑定被占用的端口。
内存限制太低,容器被 Out Of Memory 杀死。
liveness 探针返回错误 未报告 Pod 已 Ready。
只读文件系统,或缺乏权限。
以上这些只是可能原因的列表,可能还有很多其他原因。
现在让我们看看如何深入挖掘并找到真正的原因。
调试、排障和修复 CrashLoopBackOff
上文,您了解到 pod 最终处于 CrashLoopBackOff 状态的原因有很多。现在,你怎么知道是哪一个在影响你?让我们回顾一下您可以用来调试它的一些工具,以及使用它的顺序。
这可能是我们最好的做法:
检查pod 描述。
检查pod 日志。
检查events。
检查deployment。展开评论点赞