资源简介
这个是哈尔滨工业大学计科专业数据库实验四的源码。实验要求是模拟数据库的物理实现。在使用前请先参考我的博客,里面有使用说明。
代码片段和文件信息
# coding=utf8
from Memory import Memory
path_select1 = ‘result/select1.txt‘
path_select2 = ‘result/select2.txt‘
path_project = ‘result/project.txt‘
path_join1 = ‘result/join1.txt‘
path_join2 = ‘result/join2.txt‘
path_join3 = ‘result/join3.txt‘
path_bing = ‘result/bing.txt‘
path_jiao = ‘result/jiao.txt‘
path_cha = ‘result/cha.txt‘
##线性查找
def linear_search():
output = open(path_select1 ‘w‘)
output.write(‘R: \n‘)
for i in range(100):
mr.load(0 i)
for t in mr.buffer[0]:
if t[0] == 40:
output.write(str(t[0]) + ‘ ‘ + str(t[1]) + ‘\n‘)
output.write(‘S: \n‘)
for i in range(200):
ms.load(0 i)
for t in ms.buffer[0]:
if t[0] == 60:
output.write(str(t[0]) + ‘ ‘ + str(t[1]) + ‘\n‘)
output.close()
##二分查找
def binary_search():
m = []
output = open(path_select2 ‘w‘)
for i in range(100):
mr.load(0 i)
m.extend(mr.buffer[0])
sort_r = sorted(m key=lambda t: t[0])
low = 0
high = len(sort_r) - 1
output.write(‘R: \n‘)
while low <= high:
mid = (low + high) / 2
if sort_r[mid][0] == 40:
output.write(str(sort_r[mid][0]) + ‘ ‘ + str(sort_r[mid][1]) + ‘\n‘)
tail = mid + 1
while tail < len(sort_r) and sort_r[tail][0] == 40:
output.write(str(sort_r[tail][0]) + ‘ ‘ + str(sort_r[tail][1]) + ‘\n‘)
tail += 1
head = mid - 1
while head > 0 and sort_r[head][0] == 40:
output.write(str(sort_r[head][0]) + ‘ ‘ + str(sort_r[head][1]) + ‘\n‘)
head -= 1
break
elif sort_r[mid][0] < 40:
low = mid + 1
else:
high = mid - 1
m = []
for i in range(200):
ms.load(0 i)
m.extend(ms.buffer[0])
sort_s = sorted(m key=lambda t: t[0])
low = 0
high = len(sort_s) - 1
output.write(‘S: \n‘)
while low <= high:
mid = (low + high) / 2
if sort_s[mid][0] == 60:
output.write(str(sort_s[mid][0]) + ‘ ‘ + str(sort_s[mid][1]) + ‘\n‘)
tail = mid + 1
while tail < len(sort_s) and sort_s[tail][0] == 60:
output.write(str(sort_s[tail][0]) + ‘ ‘ + str(sort_s[tail][1]) + ‘\n‘)
tail += 1
head = mid - 1
while head > 0 and sort_s[head][0] == 60:
output.write(str(sort_s[head][0]) + ‘ ‘ + str(sort_s[head][1]) + ‘\n‘)
head -= 1
break
elif sort_s[mid][0] < 60:
low = mid + 1
else:
high = mid - 1
output.close()
##投影操作
def project():
output = open(path_project ‘w‘)
output.write(‘R: \n‘)
m=[]
for i in range(100):
mr.load(0 i)
for t in mr.buffer[0]:
m.append(t[0])
m
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7496 2018-07-03 13:34 实验四\lab4.py
文件 3114 2018-07-01 16:17 实验四\Memory.py
目录 0 2018-07-03 22:05 实验四
----------- --------- ---------- ----- ----
10610 3
- 上一篇:opengl实现的光线跟踪
- 下一篇:ADS1256原理与特点
相关资源
- 哈工大系统安全实验1实验报告参考
- 哈工大软件构造实验三、四
- 哈工大操作系统实验五
- 哈工大 编译原理作业
- 哈工大数理逻辑历年考试题
- 哈工大微电子器件教材答案
- 哈工大计算机系统实验实验八
- 哈工大计算机系统实验PPT
- 哈工大 EDA课程设计 verilog编程 数字秒
- 哈工大传输原理满分课程论文
- 数据结构试题(哈工大期末考试)
- 哈工大考研通信复试面试问题汇总
- 形式语言与自动机论文 哈工大 计算机
- 哈工大接口技术大作业-中断技术
- 哈工大-概率论与数理统计大作业论文
- 哈工大计算机网络补考题.zip
- 哈工大计算方法实验
- 哈工大 操作系统所有实验报告
- 哈工大停用词超全版
- 2012年中南大学计科专业计算机网络课
- 哈工大系统辨识总结
- 哈工大停用词表
- 哈工大停用词
- 2018哈工大深圳何震宇算法.pdf
- 哈工大计算方法实验报告
- 哈工大数字信号处理2010年考题
- 哈工大秋季学期人工智能3学分第三个
- 珍贵资料哈尔滨工业大学密码学原理
- 哈工大密码学作业题目
- 中文自动分词 哈工大-中文信息处理实
评论
共有 条评论