归并排序归并排序是利用递归与分治技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归方法将排好序的半子表合并成为越来越大的有序序列.归并排序中,"归"代表的是递归的意思,既递归的将数组折半的分离为单个数组,例如数组:{2,6,1,0},会先折半,分为{2,6}和{1,0}两个子数组,然后再折半将数组分离,分为{2},{6}和{1},{0},"并"就是将分开的数据按照从小到大或者从大到
冒泡排序单向冒泡排序的基本思想是,假设由小到大排序,对于给定的 n 个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换其位置,进行一轮比较和换位后,n 个记录中的最大记录将位于第 n 位,然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个时为止.packagemainimport"fmt"funcBubbleSort(array[]int){l
插入排序对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余的记录为无序序列,接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止 packagemainimport"fmt"funcInsertSort(array[]int){ifarray==nil{return}fori:=1;i<len(array);i++{tmp,
选择排序选择排序是一种简单直观的排序算法,基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小记录,然后将该记录与第一个记录的位置进行交换,接着对不包括第一个记录一位的其他记录进行第二轮比较,得到最小记录并与第二个记录进行位置交换,重复该过程,直到进行比较的记录只有一个时为止 packagemainimport"fmt"funcSelectSort(data[]int){llen:=len(da
类型断言 1.类型断言定义类型断言会检查作为操作数的动态类型是否满足指定的断言类型类型断言是一个作用在接口值上的操作,写出来类似 x.(T),其中 x 是一个接口类型的表达式,而 T 是一个类型,称为断言类型类型断言就是用来从它的操作数中把具体类型的值提取出来的操作类型断言是一个接口值表达式,从一个接口类型变为拥有另一套方法的接口类型,但保留了接口值中的动态类型和动态值部分 varwio.Writerw=os.S
优雅 panic1.预期宕机和非预期宕机 gofuncforEachNode(n*html.Node,pre,postfunc(n*html.Node)){ifpre!=nil{pre(n)}forc:=n.FirstChild;c!=nil;c=c.NextSibling{forEachNode(c,pre,post)}ifpost!=nil{post(n)}}//!+//soleTitleretur
URL 发起 HTTPGET 请求 GET 请求并解析 HTML 返回链接 go//ExtractmakesanHTTPGETrequesttothespecifiedURL,parses//theresponseasHTML,andreturnsthelinksintheHTMLdocument.funcExtract(urlstring)([]string,error){resp,err:=http.Get(u