剛開始接觸python,對其飄逸的語法所「震撼」,與其說是在寫**,還不如說是在說一段**。
剛開始學吧,寫個簡單的程式練一下手吧,就寫了乙個歸併排序的演算法
def merge(num_list,l_b,l_e,r_b,r_e):
temp=
begin=l_b
while l_b<=l_e and r_b<=r_e:
if num_list[l_b] < num_list[r_b]:
l_b=l_b+1
else:
r_b=r_b+1
while l_b<=l_e:
l_b=l_b+1
while r_b<=r_e:
r_b=r_b+1
for index in range(0,len(temp)):
num_list[begin+index]=temp[index]
def mergesort(num_list,b,e):
if bmid=int((b+e)/2)
mergesort(num_list,b,mid)
mergesort(num_list,mid+1,e)
l_b=b
l_e=mid
r_b=mid+1
r_e=e
merge(num_list,l_b,l_e,r_b,r_e)
def main():
num_list=[5,4,1,7,9,8,6,5,4,7]
mergesort(num_list)
if __name__=="__main__":
main()
寫完感覺還不錯,於是乎上網看看別人用python咋寫的。果然出乎我的預料,我仿造其格式,寫了一下
def mergesort(num_list):
if len(num_list)<=1: return num_list
mid=int(len(num_list)/2)
return merge(mergesort(num_list[:mid]),mergesort(num_list[mid:]))
def merge(l_list,r_list):
temp_list=
while l_list and r_list:
return temp_list+l_list+r_list
短小精悍,剛開始我懷疑 這麼寫的效率有沒有問題啊。因為我原來的演算法在函式之間不用傳引數,就簡單測試一下,再次出乎的預料,通過跑10w次,我原來的演算法接近5s,而這個演算法不到4秒,好吧,以後還是要使用python的思維寫python**,不過真的很優雅。
python簡單速度測試
剛開始接觸python,對其飄逸的語法所 震撼 與其說是在寫 還不如說是在說一段 剛開始學吧,寫個簡單的程式練一下手吧,就寫了乙個歸併排序的演算法 def merge num list,l b,l e,r b,r e temp begin l b while l b l e and r b r e ...
簡單的firebird插入速度測試
firebird3.0 插入1萬條guid,不帶事務 5500ms 插入1萬條guid,帶事務 2300ms mssql2008 插入1萬條guid,不帶事務 1400ms 插入1萬條guid,帶事務 800ms 資料庫都安裝在本機,呼叫端為c framewrok4,mssql插入速度約是fireb...
Oracle入庫速度測試 Python版
測試環境 intel xeon 2.4g四核心 2.5g記憶體 server 2003 enterprise edition service pack 2 oracle9i enterprise edition 9.2.0.1.0 python 2.5.2 元件cx oracle 4.3.1 win...