25
2018
07

python函数延伸-简单介绍算法-排序、查找

算法(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("\n……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()




版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。