千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读

1、冒泡排序

  a、题目:列表数据[4,2,3,1] 用冒泡排序
    a、冒泡排序的对比方式:相邻交换位置去对比
    b、冒泡排序示例
      list1=[4,2,3,1]
      len1=len(list1)
      print(len1)
      for i in range(1,len1):
        for j in range(1,len1-i+1):
          if list1[j-1]>list1[j]:
            list1[j-1],list1[j]=list1[j],list1[j-1]
      print(list1)

      输出结果:
      4
      [1, 2, 3, 4]

 

      流程解析:
      第一个循环控制外部循环总共循环多少次(循环三次)
      第二个循环控制内部循环总共循环多少次(循环三次)
      4,2,3,1
      i=1 4231
      j=1 (j-1 > j) 2431
      j=2 (j-1 > j) 2341
      j=3 (j-1 > j) 2314
      i=2
      j=1 (j-1 > j) 2314
      j=2 (j-1 > j) 2134
      i=3
      j=1 (j-1 > j) 1234

 

2、选择排序

a、题目:列表数据[4,2,3,1] 用选择排序

  a、选择排序的对比方式:找打最大值,拿出来去和别人对比。原理:在一组数据中从最开始找到最大(小)的元素,放在排序的起始位置
  b、选择排序示例

    list1=[4,2,3,1]
    max_index=0
    for i in range(0,len(list1)-1):
      for j in range(i+1,len(list1)):
        if list1[j]>list1[max_index]:
          max_index=j
      list1[i],list1[max_index]=list1[max_index],list1[i]
      max_index=i+1
    print(list1)
    输出结果:[4, 3, 2, 1]
    流程解析
    4,2,3,1
    第一次循环
    i=0
    j=1 2>4(否) max=0 4231
    j=2 3>4(否) max=0 4231
    j=3 1>4(否) max=0 4231
    第二次循环
    i=1
    j=1 3>2(是) max=2 4231
    j=2 1>2(否) max=2 4321
    第三次循环
    i=2
    j=3 1>2(否) max=3 4321

 

3、递归算法

a、题目:计算1+2+3 用递归计算
  a、递归的特点:函数内部自己调用自己(有出口,满足一个条件,就不执行)
  b、递归算法示例
    def sum_number(num):
      if num==1:
        return 1
      temp=sum_number(num-1)
      return temp+num

 

    a=sum_number(3)
    print(a)
    输出结果:6

 

posted on   隆江猪脚饭  阅读(73)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示