
最近在寻找画思维导图的软件,印象笔记中的思维导图比较符合我的需求,但我不知道怎么导出为图片(我想到的一种方法是导进语雀,这样自动就转化成图片了,不过这种方法比较麻烦,可以尝试调用语雀对印象笔记的 API 将 HTML 格式转为 PNG 格式),上面那个是 XMind 画出来的思维导图,XMind 是一个付费软件,内含有多种模板和功能,但有一种杀鸡用牛刀的意思。下面的是用 GitMind 画的思维导图,GitMind 是一款免费开源的在线思维导图软件,界面简洁、操作简单,支持Web云端保存,新建的脑图会自动保存至云端,可以随时登陆账户查看编辑、不用担心脑图文件发生丢失。简介好用,确认过眼神,是我喜欢的类型。
Bubble
核心思想
就像它的名字一样,冒泡排序,小的上浮,大的下沉。
代码实现
package mainimport ("fmt""github.com/zhangce1999/gods/utils")func main() {arr := utils.RandArray(10)fmt.Println("Initial array is:", arr)fmt.Println("")for i := 0; i < len(arr); i++ {for j := 0; j < len(arr)-1-i; j++ {if arr[j] > arr[j+1] {arr[j], arr[j+1] = arr[j+1], arr[j]}}}fmt.Println("Sorted array is: ", arr)}
快速排序
核心思想
选择一个基本数(一般选第一个),大的放在左边,小的放在右边,然后对左边和右边的数字重复上面的操作,这是一个递归的过程。
代码实现
package mainimport ("fmt""github.com/zhangce1999/gods/utils")// QKSort represents the quick sortfunc QKSort(arr []int, L, P int) {if len(arr) <= 1 {return}x := arr[L]i, j := L, Pfor i != j {for arr[j] > x {j--}if i < j {arr[i] = arr[j]i++for arr[i] <= x && i < j {i++}if i < j {arr[j] = arr[i]j--}}}arr[i] = xi++j--if L < j {QKSort(arr, L, j)}if i < P {QKSort(arr, i, P)}}func main() {arr := utils.RandArray(10)fmt.Println("Initial array is:", arr)QKSort(arr, 0, 9)fmt.Println(arr)fmt.Println("Sorted array is: ", arr)}
嗨呀,这个排序算法实现的有问题,只有部分情况适用,可能是因为递归没有退出,正在修改程序。
