冒泡排序、二分查找法、选择排序、斐波那契数列

本文详细介绍了如何使用Python编程语言实现冒泡排序、高效的二分查找法、选择排序算法以及经典的斐波那契数列。通过这些基础算法的学习,可以提升对Python语言的理解和编程能力。
摘要由CSDN通过智能技术生成

冒泡排序

# def bubble_sort(arr):
#     """冒泡排序"""
#     # 第一层for表示循环的遍数,表示总得长度,代表每个元素遍历次数
#     for i in range(len(arr) - 1):
#         # 第二层for表示具体比较哪两个元素,根据每个元素从第一到最后0-j 进行排序
#         for j in range(len(arr) - 1 - i):
#             if arr[j] > arr[j + 1]:
#                 # 如果前面的大于后面的,则交换这两个元素的位置
#                 arr[j], arr[j + 1] = arr[j + 1], arr[j]
#     print(arr)
#     return arr
#
# if __name__ == '__main__':
#     arr = [7,6,5,4,3,2,1]
#     bubble_sort(arr)

#二分查找法

# def erfen(alist, item):
#     # 构造初始下标和结束下标
#     first = 0
#     last = len(alist) - 1
#     # 构造循环比较条件
#     while first <= last:
#         # 构造中间值下标
#         mid = (first + last) // 2
#         # item(要查找的元素) 和中间值下标对应的元素进行比较 查询到后直接返回值
#         if item == alist[mid]:
#             # 返回查询到的值
#             return True, alist.index(item)
#         else:
#             if item > alist[mid]:
#                 first = mid + 1
#             else:
#                 last = mid - 1
#     return False
# if __name__=='__main__':
#     alist = [-22, -11, 0, 11, 22, 33, 38, 44, 55, 57, 66, 72, 81, 96, 123456]
#     print(erfen(alist,11))

#选择排序

#def change(alist):
#     # x就是1到传过来的这个参数的长度总值
#     for x in range(0, len(alist)):
#         # min_num相当于每次循环的下标对应数字
#         min_num = alist[x]
#         # 循环下标x+1到所有下标长度
#         for i in range(x + 1, len(alist)):
#             # 如果下标i的参数大于min_num >是降序  <是升序
#             if alist[i] > min_num:
#                 alist[i], min_num = min_num, alist[i]  # 参数互换位置
#                 alist[x] = min_num
#     return alist  # 返回排序过的列表
#
#
# print(change([1, 4, 2, 3, 6, 7, 8, 9, 0, 5, ]))  # 向change函数传递参数

#斐波那契数列

# def num(x):
#     if x==1:
#         return 1
#     elif x ==2:
#         return 2
#     else:
#         return num(x-1)+num(x-1)
# for i in range(1,10):
#     print(num(i))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值