
算法(golang实现)
月守护
卡拉卡拉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
检查表达式中的括号是否匹配
借用栈结构我们用栈来保存未匹配的左括号,从左到右依次扫描字符串。当扫描到左括号时,则将其压入栈中;当扫描到右括号时,从栈顶取出一个左括号。如果能够匹配,比如“(”跟“)”匹配,“[”跟“]”匹配,“{”跟“}”匹配,则继续扫描剩下的字符串。如果扫描的过程中,遇到不能配对的右括号,或者栈中没有数据,则说明为非法格式。当所有的括号都扫描完成之后,如果栈为空,则说明字符串为合法格式;否则,说明有未匹配的左括号,为非法格式。package mainimport ( "errors" "fmt")t原创 2021-01-18 10:43:09 · 2089 阅读 · 0 评论 -
排序(二)--O( n^2)
冒泡排序依次优化func bubble_sort_v1(arrry []int) { for i := 0; i < len(arrry)-1; i++ { for j := 0; j < len(arrry)-1-i; j++ { if arrry[j] > arrry[j+1] { temp := arrry[j] arrry[j] = arrry[j+1] arrry[j+1] = temp } } }}func bubble原创 2020-12-16 23:13:18 · 128 阅读 · 0 评论 -
排序概述(一)
时间复杂度分类1.时间复杂度为O(n^2)的排序算法冒泡排序选择排序插入排序希尔排序(希尔排序比较特殊,它的性能略优于O(n^2),但又比不上O(nlogn))2.时间复杂度为O(logn)的排序算法快速排序归并排序堆排序3.时间复杂度为线性的排序算法计数排序桶排序基数排序稳定性分类排序算法根据稳定性,划分为稳定排序和不稳定排序。如果值相等的元素在排序后仍然保持着排序前的顺序,则是稳定排序如果值相等的元素在排序后打乱了排序前的顺序,则是不稳定排序1.稳定排序原创 2020-12-02 23:06:21 · 94 阅读 · 0 评论