找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4722|回复: 4

python list 内存线性访问和随机访问比较

11

主题

35

帖子

35

积分

贫民

积分
35
zy1 发表于 2014-10-1 01:50:53 | 显示全部楼层 |阅读模式

线性访问速度是随机访问的2倍左右
一下是数组长度和两种访问的时间,单位是秒
数组长度线性随机
1000.010.01
10000.010.01
100000.0150.015
1000000.020.03
10000000.10.2
1000000012


比较的时候把产生随机数的时间减掉了,长度是一亿的时候程序直接挂了
线性访问
import random
a = range(10000)
b = 0
for i in xrange(10000):
        b = random.randint(0,999)
        a = 0
随机访问
import random
a = range(10000)
b = 0
for i in xrange(10000):
        b = random.randint(0,999)
        a = 0

回复

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
Mrserious 发表于 2014-12-16 11:18:09 | 显示全部楼层
这里两端代码都是相同的 ,都是随机访问的? 还是楼主贴错了?额:o:o
回复 支持 反对

使用道具 举报

11

主题

35

帖子

35

积分

贫民

积分
35
zy1  楼主| 发表于 2014-12-16 11:53:49 | 显示全部楼层
Mrserious 发表于 2014-12-16 11:18
这里两端代码都是相同的 ,都是随机访问的? 还是楼主贴错了?额

对不起,是我搞错了,多谢指正啊
线性访问
a = range(10000)
for i in xrange(10000):
        a = 0
随机访问
import random
a = range(10000)
for i in xrange(10000):
        a[random.randint(0,9999)] = 0
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
Mrserious 发表于 2014-12-20 01:07:47 | 显示全部楼层
zy1 发表于 2014-12-16 11:53
对不起,是我搞错了,多谢指正啊
线性访问
a = range(10000)

:lol:lol:lol:victory:
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
Mrserious 发表于 2014-12-20 01:08:04 | 显示全部楼层
zy1 发表于 2014-12-16 11:53
对不起,是我搞错了,多谢指正啊
线性访问
a = range(10000)

:victory::victory:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表