バイナリサーチ--python

1つの インポートランダム
 2  
3  二分查找-递归实现
4  デフbinary_search(ARR、左、右、NUM):
 5      であれば左> 右:
 6          リターン -1
 7      半ば=(左+右)// 2
 8      もし NUM < [中間] ARR:
 9          右=ミッド- 1
 10      のelif NUM> [中間] ARR:
 11          左=ミッド+ 1
 12      13          リターンミッド
 14      リターンbinary_search(ARR、左、右、NUM)
 15  
16 IF  __name__ == ' __main__ ' 17      ARR = [11、32、51、21であることは42 ,. 9 ,. 5 ,. 6 ,. 7 ,. 8である]
 18れる     プリント(ARR)
 19。     arr.sort()
 20は、     プリント(ARR)
 21であり、 
22は      random.randint = NUM(0、52である23は、     プリント' :見つける番号' 、NUM)
 24      ( - 1 ARR、0、LEN(ARR)RES = binary_search 、NUM)
 25      IF -1 == RES:
 26であります         印刷見つからない!27      28          プリント' 見出され、インデックス' 、RES)
 29      プリント' ************************************************************ ' 30      NUM = ARR [random.randint(0 、LEN(ARR))]
 31であり、     印刷' :見つける番号' 、NUM)
 32      。 - RES = binary_search(ARR、0、LEN(ARR)1 、NUM)
 33は、     IF -1 == :RES
 34は         プリント' 見つからない!35      、他36          印刷見つけ、インデックスを"、RES)

 

おすすめ

転載: www.cnblogs.com/yixiu868/p/11763450.html