go
于对对
这个作者很懒,什么都没留下…
展开
-
二进制的运用
将二进制的最后一个1变为0例如x = 6,二进制 110x -1 = 5,二进制 101x & (x-1) ,结果为 100,将x的最后一个1 转换成了0运用场景:计算二进制中,1的个数func CountBits(n int) int { res := 0 for i := n; i > 0; i &= (i - 1) { res += 1 } println(res) return res}...原创 2022-02-24 18:42:12 · 256 阅读 · 0 评论 -
算法:堆排序(go实现)
照旧,老铁先开始讲理论:理论:堆排序,就是根据大顶堆的特性——父节点总是大于子节点,则root节点就是堆中的最大数值,所以只要每次取出root节点,就可以完成排序。程序离不开两个东西:1,数据结构。2,计算逻辑1,数据结构大家都知道,这是传统手艺。堆结构,用数组来存储 array。root节点位于 array[0] 位置。root的左子节点位于 array[1] 位置root的右子节点位于 array[2] 位置如果用 index 表示元素下标。则满足父节点位于 array[i]左子原创 2020-05-22 18:17:02 · 469 阅读 · 1 评论 -
算法:选择排序(go语言实现)
选择排序与冒泡排序的时间复杂度相同。因为一直在选择最小的数字,所以叫选择排序理论部分:1,将设数组0号位为数组最小值,将其定义为minNum123456789此时 minNum=52,遍历数组,将每一项和 minNum 对比,如果小于minNum,则将其与第一项调换位置并重新赋值 minNum123456789变换为123456789此时 minNum=4。。。重复以上步骤...原创 2020-04-29 15:39:17 · 247 阅读 · 0 评论 -
算法:冒泡排序(go语言)
先讲冒泡排序理论:再讲冒泡排序之代码实践:package main// 5,7,9,4,8,3,1,2,6,3// 冒泡排序func BubbleSort() { // 数组初始化 sort_init := []int{5, 7, 9, 4, 8, 3, 1, 2, 6, 3} iter_print(sort_init...) for i := 0; i < len(...原创 2020-04-28 14:49:20 · 168 阅读 · 0 评论