算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
排序算法:
二分查找算法:
python demp:
#coding:utf-8 """ python2.7 """ def mysort(list): """demo函数:从小到大排序函数""" list_len=len(list) for i in range(0,list_len): min_value=list[i] min_index=i if i+1==list_len:#最后一个,退出排序 break for j in range(i+1,list_len): if list[j]<min_value: min_index=j min_value=list[j] pass pass if min_index != i: list[min_index],list[i]=list[i],list[min_index] pass pass """ 算法(Algorithm) 对一定规范的输入,在有限时间内获得所要求的输出 https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025?fr=aladdin """ def binary_search(data_list, val): """二分查找算法,又叫折半查找""" low = 0 # 最小数下标 high = len(data_list) - 1 # 最大数下标 while low <= high: mid = (low + high) // 2 # 中间数下标,取整 if data_list[mid] == val: # 如果中间数下标等于val, 返回 return mid elif data_list[mid] > val: # 如果val在中间数左边, 移动high下标 high = mid - 1 else: # 如果val在中间数右边, 移动low下标 low = mid + 1 return # val不存在, 返回None def main(): print("……demo:排序函数……".decode("utf-8")) a=[14,26,23,100,88,40,120,70] mysort(a) print(a) #return print(" ……demo:二分查找函数……".decode("utf-8")) a.extend([150,190]) print(a) tofind=60 data_index_finded = binary_search(a, tofind) print("tofind:{},data_index_finded:{}".format(tofind,data_index_finded)) tofind=120 data_index_finded = binary_search(a, tofind) print("tofind:{},data_index_finded:{}".format(tofind,data_index_finded)) tofind=88 data_index_finded = binary_search(a, tofind) print("tofind:{},data_index_finded:{}".format(tofind,data_index_finded)) tofind=26 data_index_finded = binary_search(a, tofind) print("tofind:{},data_index_finded:{}".format(tofind,data_index_finded)) pass main()