歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

用Python實現二分查找

程序如下:

#!/usr/bin/env python 
import sys 
 
def search2(a,m): 
    low = 0 
    high = len(a) - 1 
    while(low <= high): 
        mid = (low + high)/2 
        midval = a[mid] 
     
        if midval < m: 
            low = mid + 1 
        elif midval > m: 
            high = mid - 1 
        else: 
            print mid 
            return mid 
    print -1 
    return -1 
 
if __name__ == "__main__": 
    a = [int(i) for i in list(sys.argv[1])] 
    m = int(sys.argv[2]) 
    search2(a,m) 

運行:

administrator@Ubuntu:~/Python$ python test_search2.py 123456789 4
3

注:

1.'__':由於python的類成員都是公有、公開的被存取public,缺少像正統面向對象語言的私有private屬性。
於是就用__來將就一下,模擬私有屬性。這些__屬性往往是內部使用,通常情況下不用改寫。也不用讀取。
加上2個下劃線的目的,一是不和普通公有屬性重名沖突,二是不讓對象的使用者(非開發者)隨意使用。2.__name__ == "__main__"表示程序腳本是直接被執行的.

如果不等於表示腳本是被其他程序用import引入的.則其__name__屬性被設為模塊名

Copyright © Linux教程網 All Rights Reserved