方法1:我的做法
1 def f(num,t): 2 count=0 3 flag=True 4 #判断是否在列表中,在的话,很简单 5 for i in range(len(num)): 6 if num[i]==t: 7 return i 8 flag=False 9 break 10 #结束一轮判断,开始找位置排序了 11 if flag: 12 for i in range(len(num)): 13 if num[i]>t: 14 num.insert(i,t) 15 return i 16 else: 17 return len(num)+1 18 num.append(t) 19 20 num=[1,3,5,5,5,6] 21 target=7 22 print(f(num,target)) 23 24 num=[1] 25 target=0 26 print(f(num,target))
方法2:用了序列(字符串、元组、列表)in \ not in 操作符;用了index 方法;用了append;用了sort。
1 def f(num,t): 2 if t not in num: # 如果t不在列表中,把它加入列表重新排序,返回索引值 3 num.append(t) 4 num.sort() 5 return num.index(t) #返回目标值的索引
方法3:二分查找法
def (num,t): L , R = 0 , len(num)-1 #边界[L,R] while L <= R: M=(L+R)//2 if t <=num[M]: #右边界更新 R = M -1 else: L = M =1 #左边界更新 return L