2016-04-29 二分查找的面试题
生活随笔
收集整理的這篇文章主要介紹了
2016-04-29 二分查找的面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
1.面試題
例如: ip計算后的值=53文本內容:1,100,北京 101,1000,上海 1001,3001,廣州 ...求ip=53對應的省份2.代碼如下:
#!/usr/bin/python # coding: utf8def ip_find(ip):f_content="""1,100,北京\n101,1000,上海\n1001,3000,深圳\n3001,10000,廣州\n10001,20001,杭州"""# print f_content.strip()dict1={}for i in f_content.split('\n'):l1= i.split(',')dict1[int(l1[0])] = (int(l1[1]), l1[2])# print dict1# print dict1[1][1]start,end = 0, len(dict1)sort(start, end, dict1)def sort(start, end, dict1):if ip>=sorted([i for i in dict1.keys()])[-1]:print dict1[sorted([ i for i in dict1.keys()])[-1]][1]return len_d = (start+end)/2# print 'len_d=%s' % len_d# print sorted([i for i in dict1.keys()])ip_num_1=sorted([i for i in dict1.keys()])[len_d]ip_num_2=sorted([i for i in dict1.keys()])[len_d+1]# print "ip_num_1 %s, ip_num_2 %s" % (ip_num_1, ip_num_2)if ip_num_1 <= ip < ip_num_2 :print dict1[ip_num_1][1]elif ip<ip_num_1:sort(start, len_d, dict1)elif ip >= ip_num_2:sort(len_d, end, dict1)ip=101 ip_find(ip) 結果: 上海 [Finished in 0.0s]轉載于:https://my.oschina.net/repine/blog/668131
總結
以上是生活随笔為你收集整理的2016-04-29 二分查找的面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓从业者应该关注:Android 6.
- 下一篇: 网络数据库的复制和同步(转摘)