資源簡介
這個是哈爾濱工業大學計科專業數據庫實驗四的源碼。實驗要求是模擬數據庫的物理實現。在使用前請先參考我的博客,里面有使用說明。

代碼片段和文件信息
#?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?????????????????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?????????????????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原理與特點
評論
共有 條評論