×

内存管理算法 算法 分区

可变分区管理内存分配算法有那些,各有什么有缺点?决策树法分为那几个步骤

admin admin 发表于2022-07-07 03:53:41 浏览99 评论0

抢沙发发表评论

可变分区管理内存分配算法有那些,各有什么有缺点


连续分配: 首次适应算法(较快,简单,碎片多),最大适应分配算法(以期不留下小碎片), 最佳适应分配算法(慢,复杂,碎片少)。 都需要碎片整理。
离散分配:分段管理(逻辑性好),分页管理,段页式管理(最好,当然也复杂)。

决策树法分为那几个步骤


1、特征选择

特征选择决定了使用哪些特征来做判断。在训练数据集中,每个样本的属性可能有很多个,不同属性的作用有大有小。因而特征选择的作用就是筛选出跟分类结果相关性较高的特征,也就是分类能力较强的特征。在特征选择中通常使用的准则是:信息增益。-算法

2、决策树生成

选择好特征后,就从根节点触发,对节点计算所有特征的信息增益,选择信息增益最大的特征作为节点特征,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点,直到信息增益很小或者没有特征可以选择为止。-分区

3、决策树剪枝

剪枝的主要目的是对抗「过拟合」,通过主动去掉部分分支来降低过拟合的风险。

【简介】

决策树是一种解决分类问题的算法,决策树算法采用树形结构,使用层层推理来实现最终的分类。


什么叫java中的二分查找法


  1、算法概念。

  二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。请注意这种算法是建立在有序数组基础上的。

  2、算法思想。

  ①搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;

  ②如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

  ③如果在某一步骤数组为空,则代表找不到。

  这种搜索算法每一次比较都使搜索范围缩小一半。

  3、实现思路。

  ①找出位于数组中间的值,并存放在一个变量中(为了下面的说明,变量暂时命名为temp);

  ②需要找到的key和temp进行比较;

  ③如果key值大于temp,则把数组中间位置作为下一次计算的起点;重复① ②。

  ④如果key值小于temp,则把数组中间位置作为下一次计算的终点;重复① ② ③。

  ⑤如果key值等于temp,则返回数组下标,完成查找。

  4、实现代码。

/**
     * description : 二分查找。
     * @param array 需要查找的有序数组
     * @param from 起始下标
     * @param to 终止下标
     * @param key 需要查找的关键字
     * @return
     */
    public static 《E extends Comparable《E》》 int binarySearch(E array, int from, int to, E key) throws Exception {
        if (from 《 0 || to 《 0) {
            throw new IllegalArgumentException(“params from & length must larger than 0 .“);
        }
        if (from 《= to) {
            int middle = (from 》》》 1) + (to 》》》 1); // 右移即除2
            E temp = array[middle];
            if (temp.compareTo(key) 》 0) {
                to = middle - 1;
            } else if (temp.compareTo(key) 《 0) {
                from = middle + 1;
            } else {
                return middle;
            }
        }
        return binarySearch(array, from, to, key);
    }