java中的ArrayList和LinkedList的二分查找速度比

java中的ArrayList和LinkedList的二分查找速度比

package tian;

import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Random;

/**

  • ArrayList和LinkdedList的二分查找查找时间比较 */

public class TestList { public static final int N = 50000; public static List values;

static {
    //定义一个数组
    Integer vals[] = new Integer[N];
    Random r = new Random();
    int currval = 0;
    for (int i = 0; i < N; i++) {
        vals[i] = currval;
        //获得随机数,这样就可以确保是数组是升序
        currval += r.nextInt(100) + i;
    }
    //返回一个受指定数组支持的固定大小的列表
    values = Arrays.asList(vals);
}

static long timeList(List lst) {
    //获得当前时间
    long start = System.currentTimeMillis();
    for (int i = 0; i < N; i++) {
        //二分查找,获得index,此方法要求list为升序,如果没有对列表进行排序,则结果是不确定的
        int index = Collections.binarySearch(lst, values.get(i));
        //判断找出来的位置是否为对应的位置,
        if (index != i) {
            System.out.println("**出错了**");
        }
    }
    //算出所花时间
    return System.currentTimeMillis() - start;
}

public static void main(String args[]) {
    System.out.println("ArrayList消耗时间:" + timeList(new ArrayList(values)));
    System.out.println("LinkedList消耗时间:" + timeList(new LinkedList(values)));
}

}

Read more

超快速,使用ChatGPT编写回归和分类算法

超快速,使用ChatGPT编写回归和分类算法

本文将使用一些 ChatGPT 提示,这些提示对于数据科学家在工作时非常重要。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 以下是一些示例ChatGPT 提示的列表以及数据科学家的响应。 ChatGPT 提示 为决策树回归算法生成 python 代码。 下面是使用scikit-learn在 Python 中进行决策树回归的示例代码: import numpy as np import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeRegressor # Generate random data rng = np.random.default_rng() x = 5 * rng.random(100) y = np.sin(x) + 0.

By Ne0inhk
力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

993.二叉树的堂兄弟节点 难度:简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 示例: 示例 1: 输入:root = [1,2,3,4], x = 4, y = 3 输出:false

By Ne0inhk
1239.串联字符串的最大长度 关于字符串的回溯算法!

1239.串联字符串的最大长度 关于字符串的回溯算法!

题目: 给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串, 如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。 请返回所有可行解 s 中最长长度。 提示: 1 <= arr.length <= 16 1 <= arr[i].length <= 26 arr[i] 中只含有小写英文字母 示例: 示例 1: 输入:arr = ["un","iq","ue"] 输出:4 解释:所有可能的串联组合是

By Ne0inhk