• python_基础算法


    一、二分查找

     1 def binary(binary_para, search):
     2     bi = int(len(binary_para)/2)
     3     if search == binary_para[0]:
     4         print('数存在,并存在在列表第一位')
     5     elif len(binary_para)>1:
     6         if binary_para[bi] > search:
     7             print('分段值(前):',binary_para[bi])
     8             binary(binary_para[:bi],search)
     9         elif binary_para[bi] < search:
    10             print('分段值(后):',binary_para[bi])
    11             binary(binary_para[bi:],search)
    12         else:
    13             print('你寻找的数存在列表里')
    14     else:
    15         print('列表里不存在你寻找的数')
    16 
    17 if __name__ == '__main__':
    18     li = list(range(8,30000,10))
    19     binary(li, 12138)

    二、冒泡排序

     1 def bub_sort(sort_list):
     2     for i in range(len(sort_list)-2):
     3         for j in range(len(sort_list)-i-1):
     4             if sort_list[j]>sort_list[j+1]:
     5                 temp = sort_list[j+1]
     6                 sort_list[j+1] = sort_list[j]
     7                 sort_list[j] = temp
     8 
     9 
    10 if __name__ == '__main__':
    11     li = [65, 1, 45, 77, 3, 9, 43, 23, 7, 53, 213, 10]
    12     bub_sort(li)
    13     print(li)

    三、选择排序

     1 def select_sort(list_sort):
     2     for i in range(len(list_sort)):
     3         min_index = i
     4         for j in range(i, len(list_sort)):
     5             if list_sort[min_index] > list_sort[j]:
     6                 min_index = j
     7         temp = list_sort[i]
     8         list_sort[i] = list_sort[min_index]
     9         list_sort[min_index]=temp
    10 
    11 if __name__ == '__main__':
    12     li = [65, 1, 45, 77, 3, 9, 43, 23, 7, 53, 213, 10]
    13     select_sort(li)
    14     print(li)

    四、插入排序

     1 def insert_sort(sort_list):
     2     for i in range(1,len(sort_list)):
     3         insert_index = i    # 索引当做类似指针的使用
     4         insert_value = sort_list[i]    # 把要插入的值存下来,以免后面被覆盖
     5         while insert_index > 0 and insert_value < sort_list[insert_index-1]:
     6             sort_list[insert_index] = sort_list[insert_index-1]
     7             insert_index -=1
     8         sort_list[insert_index] = insert_value
     9 
    10 if __name__ == '__main__':
    11     li = [65, 1, 45, 77, 3, 9, 43, 23, 7, 53, 213, 10]
    12     insert_sort(li)
    13     print(li)
    14     

    五、快速排序

    图片来源:https://www.jianshu.com/p/5f38dd54b11f

     1 def quick_sort(list_sort,start,end):
     2     if start >= end:
     3         return
     4     start_index = list_sort[start]
     5     left_flag = start
     6     right_flag = end
     7 
     8     while left_flag < right_flag:
     9 
    10         while left_flag < right_flag and start_index <= list_sort[right_flag]:
    11             right_flag -=1
    12         list_sort[left_flag] = list_sort[right_flag]
    13 
    14         while left_flag < right_flag and start_index >= list_sort[left_flag]:
    15             left_flag += 1
    16         list_sort[right_flag] = list_sort[left_flag]
    17 
    18     list_sort[left_flag] = start_index
    19     quick(list_sort, start, end, left_flag)     # 递归调用
    20 
    21 def quick(list_sort,start,end,left_flag):
    22     quick_sort(list_sort,start,left_flag-1)
    23     quick_sort(list_sort,left_flag+1,end)
    24 
    25 if __name__ == '__main__':
    26     li = [64, 77, 67, 8, 6, 84, 55, 20, 43, 67, 67]
    27     quick_sort(li, 0, len(li) - 1)
    28     print(li)
  • 相关阅读:
    frida
    ES中filter 和map的使用
    阿里巴巴15 款开发者工具
    小程序的开发记录
    微信3.1小程序商城源码C# ASP.NET 多用户微商城 saas模式
    js中for,for in,forEach,for of的使用
    Vuejs学习笔记
    vue.js/element-ui/webpack 开发记录
    ESXi开启虚拟化
    shell把字符串中的字母去掉,只保留数字
  • 原文地址:https://www.cnblogs.com/Vera-y/p/11506276.html
Copyright © 2020-2023  润新知