算法
文章平均质量分 95
lihang212010
虽然我的昵称不是csdn的第一个lihang但是我的域名是csdn的第一个lihang
展开
-
主流特征工程平台(一)
Feast是一个由Gojek开发的特征商店和特征服务平台,它提供了一组功能来管理和共享特征,包括特征注册、版本控制、特征微服务和特征预测等。Feast还支持自动特征衍生和特征联合,这使得其非常适合在大规模数据和高并发场景中进行特征工程和模型推理。文档链接Tecton在Feast的基础上补充了诸如特征计算、WEB UI、ACLs、监控能力,解决了特征时效性、特征回填等难点问题,使其作为特征平台的能力更加完整,达到了商用要求。原创 2023-07-03 00:25:31 · 2897 阅读 · 0 评论 -
红黑树删除例子
这里不将原理了,只放几个例子供大家观看,如有错误请留言删除3红色节点直接删即可删除2右子节点替代2,1变黑即可删除5比较麻烦删除66原创 2020-01-16 12:01:14 · 13150 阅读 · 3 评论 -
红黑树节点插入
本来打算一下写完的,图太多了,自己都没耐心看完,就把插入和删除分开写了。红黑树有5个性质性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。性质5.每个叶节点是黑色的。性质5是一本书里额外添加的,本来只有前4个性质,性质5...原创 2019-11-12 22:09:26 · 13177 阅读 · 2 评论 -
基数排序(Java)
基数排序是非比较排序中最稳定的一个,他的排序方式如下初始化:构造一个10*n的二维数组,一个长度为n的数组用于存储每次位排序时每个桶子里有多少个元素。从低位开始,将所有元素对应该位的数字存到相应的桶子里去。然后将所有桶子里的元素按照桶子标号从小到大取出,对于同一个桶子里的元素,先放进去的先取出,后放进去的后取出(保证排序稳定性)。这样原数组就按该位排序完毕了,继续下一位操作,直到最高位排序完成...原创 2019-08-31 23:11:57 · 12534 阅读 · 0 评论 -
桶排序
桶排序是计数排序的一种改良,在数据相差比较均匀的情况下使用比计数排序要好一点。使用方法:1先找到最大值最小值,确定开辟数组数量(以10位为桶的计算方式最大值%10-最小值%10)2将数据轮流放回各个数组,并通过比较算法确定位置3将各个数组数据放回原数组,排序结束在这里我分比计数排序好的方面和不好的方面以及差不多的情况举例说明。1 比计数方式好:上图便是一个比计数方式好如11,23,...原创 2019-08-30 23:51:50 · 12723 阅读 · 0 评论 -
计数排序(Java)
计数排序先借有个软件上的一张演示图片计数排序是属于非比较排序的一种。比如1,2,3,4,5,4,5,2,7如果使用计数排序需要先找到最大值7和最小值1,然后创建一个(最大值-最小值+1)的数组这里是建造一个大小为7默认数组数字为0的数组int arr=new int[7]将最小值放在数组arr[0],最大值放在arr[6]上如何放那,arr[0]=arr[0]+1;便是将最小值放...原创 2019-08-29 21:06:17 · 12836 阅读 · 1 评论 -
归并算法(Java)
归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。把长度为n的输入序列分成两个长度为n/2的子序列;对这两个子序列分别采用归并排序;将两个排序好的子序列合并成一个最终的排序序列。如 设有数列{3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}初始状态:3,44,38,5,47,15,36,26,27,2,46,4,19,...原创 2019-08-29 18:31:57 · 12997 阅读 · 2 评论 -
快速排序(Java)
快速排序的基本思想:挖坑填数+分治法从序列当中选择一个基准数(pivot)在这里我们选择序列当中第一个数最为基准数将序列当中的所有数依次遍历,比基准数大的位于其右侧,比基准数小的位于其左侧重复步骤1.2,直到所有子集当中只有一个元素为止。举1个例子7,1,4,13,24,8,3,2,37,30第一次基准数是7结果1,4,3,2,7,13,24,8,37,30然后第二次我们分2批进...原创 2019-08-29 16:36:30 · 12763 阅读 · 0 评论 -
直接打出堆排序(Java)
堆排序其实是最简单的,最主要的难度就是建立大根堆,这里只讲大根堆。先理解几个公式,我这里直接使用别人的图片1.父结点索引:(i-1)/2(这里计算机中的除以2,省略掉小数)2.左孩子索引:2i+13.右孩子索引:2i+24.最后一个根结点,技术是 (i-1)/2,偶数是(i-2)/2,图中最后一个根结点是5从这里我们直接写代码,先建立一个函数,传入参数是数组一个i,在堆排序中我们交...原创 2019-08-29 02:45:04 · 12850 阅读 · 0 评论 -
简单选择排序
简单选择排序没什么说的,直接举例子2,5,7,9,1先找到最小数1,与0位交换,排除0位,找到剩余最小数2,与 1位交换,排除1位,找到剩余最小数5,与2位为交换,排除2位,找到剩余最小数7,与3位交换原理就是找到最小的数字然后放到最前面,然后找到剩下数字最小放到前面,然后在找放到前面+1,一次类推进行比较操作的时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。public ...原创 2019-08-28 16:22:09 · 12925 阅读 · 0 评论 -
直接插入排序及其优化的希尔排序
今天写简单的排序算法,难得单独写直接插入排序直接举个例子吧21,1,6,4,99如果使用直接插入排序的话是先从21开始,因为21前面没数所以位置不变所以结果为:21,1,6,4,99接着是1,1和1 前面的所有数比较结果1,21,6,4,99接着是6,5和前面数字比较1,6,21,4,99接着是4结果1,4,6,21,99接着是99比前面数字都大不移动位置1,4,6,21,99...原创 2019-08-28 16:02:00 · 13087 阅读 · 0 评论 -
分块查找
分块查找又称索引顺序查找,它是顺序查找的一种改进方法。 方法描述:将n个数据元素"按块有序"划分为m块(m ≤ n)。每一块中的结点不必有序,但块与块之间必须"按块有序";即第1块中任一元素的关键字都必须小于第2块中任一元素的关键字;而第2块中任一元素又都必须小于第3块中的任一元素,……。 操作步骤: step1 先选取各块中的最大关键字构成一个索引表; step2 查找分两个部分...原创 2019-08-28 02:09:07 · 13031 阅读 · 0 评论 -
斐波那契查找法
先介绍下, 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、····,在数学上,斐波那契被递归方法如下定义:F(1)=1,F(2)=1,F(n)=f(n-1)+F(n-2) (n>=2)。该数列越往后相邻的两个数的比值越趋向于黄金比例值(0.618)这个查找法稍微麻烦了些1,2,3,4,5,6,7,8,9,1010个数对应的 斐波那契数列是...原创 2019-08-28 02:01:21 · 12840 阅读 · 1 评论