发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.csdn.net/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.csdn.net/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
计数排序的思想是对每一个输入元素x,确定出小于x的元素个数,有了这一信息,就可以把x直接放在它在最终输出数组的位置上,例如,如果有17个元素小于x,则x就是属于第18个输出位置。当几个元素相同是,方案要略作修改。
package data
import scala.collection.mutable.ArrayBuffer
object CountSort {
def countSort(comparator:(_,_)=>Boolean)(source:ArrayBuffer[Int])={
val countArray=new Array[Int](getMax(source))
for(i<-0 until countArray.length){
countArray(i)=0
}
for(i<-0 until source.length){
countArray(source(i))=countArray(source(i))+1
}
for(i<-1 until countArray.length){
countArray(i)=countArray(i)+countArray(i-1)
}
val result=new Array[Int](source.length)
for(i<-0 until source.length){
result(countArray(source(i))-1)=source(i)
countArray(source(i))-=1
}
result
}
def getMax(source:ArrayBuffer[Int])={
var max=source(0)
for(i<-1 until source.length){
if(max<source(i)){
max=source(i)
}
}
max+1
}
def main(args: Array[String]): Unit = {
val source=ArrayBuffer(1,10,9,3,8,2,7,4,6,5,4,2)
println(countSort((x:Int,y:Int)=>x<y)(source).mkString(","))
}
}