python列表和数组区别java_Python列表与Java数组效率
我来自Java,正在努力学习Python。我首先在Java中实现了Sieve of Eratosthenes算法,然后在Python中实现了。我的Java实现运行得相当快,我可以在大约25秒内找到10亿以下的所有素数。我的Python实现可能需要2个小时来完成同样的事情。在
我在这里包含了这两个实现。我的问题是:为什么Python的实现要慢得多?(我知道我做错了什么)
Python有没有可能像Java一样快呢?在
我假设在Python实现中使用列表是慢的,但是我对Python太陌生了,不知道如何解决这个问题。在
爪哇语:/**
* Creates a boolean array of a specified size with true values at prime indices and
* false values at composite indices.
*/
private static boolean[] sieve(int size){
boolean[] array = new boolean[size];
//Assume all numbers greater than 1 are prime//
for(int i = 2; i < array.length; i++){
array[i] = true;
}
//Execute Sieve of Eratosthenes algorithm//
for(int p = 2; p < size; p = nextPrimeInArray(array, p)){
for(int i = p + p; i < size; i += p){
array[i] = false; // i.e., mark as composite
}
}
return array;
}
/**
* Finds the next index in the array that is not marked composite
*/
public static int nextPrimeInArray(boolean[] array, int p){
do{
p++;
}while(p < array.length && !array[p]);
return p;
}
Python:
^{pr2}$
python列表和数组区别java_Python列表与Java数组效率相关推荐
- java数组可扩展_[转载]Java数组扩容算法及Java对它的应用
Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的. 2)利用数组复制方法可以变通的实现数组扩容. 3)System.arraycopy()可以复制数组. 4)Arr ...
- python列表字典的区别_python列表和字典区别
列表 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现 ...
- c++随机打乱数组_第四天 Java 数组与排序
一. 数组 数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理. 数组的常见概念 数组名 下标(或索引) 元素 数组的长度 数组 ...
- java创建数组并赋值_「java 数组」Java创建数组的方法 - seo实验室
java 数组 最近学java,一点小心得,希望和大家分享一下,第一次写文章,写的不好希望大家谅解,当然我也会尽力写好这篇文章! Java创建数组的方法大致有三种 说明:这里以int为数据类型以arr ...
- java一维数组的特点,数据结构:java数组特点以及声明数组类
JAVA数组的特点:动态数组,具有长度属性length,引用数据类型 动态数组是指,在声明数组变量之后,使用new运算符动态申请指定容量(存储单元个数)的数据存储空间:当数组不再被使用时,java将自 ...
- java android 数组_Android开发基础之Java 数组
Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如 n ...
- Java数组在方法区吗,Java数组的操作方法
遍历 使用for循环遍历数组/取出数组的值 例子1,使用普通的for循环遍历数组并取出数组的值与索引: public class Test { public static void main(Stri ...
- java中的数组增删查改操作,java数组实现增删改查
java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...
- 北大青鸟java数组_北大青鸟:Java 数组解说(1)
北大青鸟:Java 数组解说(1) 时间:2016-01-26 14:25:13 来源: 作者:小狮 已有人浏览 导语 声明数组变量首先必须声明数组变量,才能在程序中使用数组.下面是声明数组变量的语法 ...
最新文章
- Podman中如何运行一个 Linux 虚拟机?
- Oracle RMAN备份深入解析--联机备份
- 无偏方差为什么除以n-1
- opencv下载安装及介绍【初学,后续继续更新】
- OpenGL GLFX开放GL效果库
- java线程基础巩固---线程生命周期以及start方法源码剖析
- LOJ#6284. 数列分块入门 8
- 基于 OpenCV 的图像阴影去除,你会吗?
- 牛b硬件信息修改大师_比X大师更靠谱?一款真正良心的硬件检测工具
- 计算机专业电路基础高考试卷,计算机专业电路基础试题(4页)-原创力文档
- 在MonthCalendar控件中选中日期
- 2019:自我觉醒的一年
- syslog配置及测试
- 设计模式之简单工厂模式与策略模式
- 如何搭建一个团队(一)
- C++中四种cast转换
- 大数据之hive:hive分桶表
- linux原理与应用 武汉大学,Linux原理与应用 郑鹏 武汉大学出版社 9787307060876
- 全栈Python自动化测试学习资料【付费资源、看到即赚到,】
- mac使用git管理Github以及生成 SSH 公钥