go
Lin_junhan
这个作者很懒,什么都没留下…
展开
-
快速排序
每次都找一个枢纽(下面代码用数组的最后一个),将它放到正确的位置,再把这个枢纽位置的俩边进行递归。func quickSort(arr []int, l, r int) { if l < r { mid := partionSort(arr, l, r) quickSort(arr, l, mid[0]-1) quickSort(arr, mid[0]+1, r) }...原创 2020-01-31 22:19:49 · 196 阅读 · 0 评论 -
由递归排序引申出的小和问题和逆序数对问题
递归排序的思想是将带牌列数组不断的拆成俩部分,再将有序的左右的俩部分合并。小和问题:在一个数组中,每一个数左边比当前小的数累加起来,叫做这个数组的小和。求一个数组的小和。逆序对问题,在一个数组中,打印出数组所有左边数大于右边数的组合。下面是归并排序的代码(go语言)// 写一个归并排序func mergeSort(arr *[]int, l, r int) { // 这部分是...原创 2020-01-30 18:02:12 · 233 阅读 · 0 评论 -
Golang俩个线程实现交替打印1和2 10次
一、一个进程写,一个进程读, 一个管道存数据, 一个管道进行退出控制。func main() { intChan := make(chan int, 20) exitChan := make(chan bool, 1) go func(intChan chan int){ for i:=0; i< 20; i++ { intChan<- (i%2 + 1)...原创 2020-01-10 22:39:46 · 1557 阅读 · 0 评论 -
管道channel 有无缓冲区的区别
如果没有缓冲区,单纯的往其中放入元素立马就会进入阻塞状态,必须有其他的线程从其中取走元素。通俗的讲要有一个线程不断的取这个管道的元素,才能往其中放入元素。它就像一个窄窄的门框,进去就得出来。 而有一个缓冲区的管道想一段地道,放入的元素不会马上进入阻塞状态,只有第二个准备进入而第一个还没有进入的情况下才会阻塞。没有缓冲区的管道示例:func main() { intChan := ma...原创 2020-01-10 17:32:00 · 848 阅读 · 0 评论 -
转载 解决VScode中GO语言插件安装失败问题
这个方法能解决window下和linux下的问题:https://www.cnblogs.com/justdoyou/p/9853520.html转载 2019-11-02 01:01:17 · 183 阅读 · 0 评论