【教资】信息技术(高中)学科知识与技能——第七章 程序设计基础

本文详细介绍了程序设计基础,包括算法的基本特征与常用表现形式,如自然语言、流程图和伪代码;列举了各种排序算法及其复杂度分析,并着重讲解了线性结构(如顺序表和链表)、非线性结构(如二叉树和图),以及Python中的数据类型转换、序列操作、元组、集合和字典等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第七章 程序设计基础

1 算法与程序

1.1 算法

1.1.1 算法的基本特征

  1. 有穷性
  2. 确定性:含义明确无二义性
  3. 有效性:每一步都能被执行
  4. 零个或多个输入:
  5. 一个或多个输出:

1.1.2 算法的常用表现方式

  1. 自然语言
  2. 流程图
    1. 椭圆形:开始和结束
    2. 平行四边形:输入输出
    3. 矩形:处理
    4. 菱形:判断
  3. 伪代码
  4. 计算机语言

1.1.3 常用算法

  1. 枚举法
  2. 归纳法
  3. 迭代/递推法
  4. 递归法:直接递归、间接递归(A、B算法互相调用)
  5. 回溯法:先走路径,不通回退;eg:机器人下棋
  6. 解析法:找到问题的解析表达式

1.1.4 排序算法

稳定:计基插归冒

https://blog.youkuaiyun.com/weixin_50886514/article/details/119045154

排序算法平均时间复杂度最坏时间复杂度空间复杂度稳定性
冒泡排序O(n2)O(n2)O(1)稳定
选择排序O(n2)O(n2)O(1)不稳定
插入排序O(n2)O(n2)O(1)稳定
希尔排序O(n log n)O(n2)O(1)不稳定
归并排序O(n log n)O(n log n)O(n)稳定
快速排序O(n log n)O(n2)O(log n)不稳定
堆排序O(n log n)O(n log n)O(1)不稳定
计数排序O(n+k)O(n+k)O(k)稳定
桶排序O(n+k)O(n2)O(n+k)稳定
基数排序O(n*k)O(n*k)O(n+k)稳定

其中,n表示数据规模,k表示数据的取值范围。

  • 如果排序算法能够保证相等的元素在排序前后的顺序不变,则称该算法是稳定的;反之,称该算法是不稳定的。

2 数据结构

线性结构

  1. 线性表:
    1. 顺序表——数组
    2. 链表:单链表、双链表、循环链表
  2. 栈:表位进行插入和删除;后进先出
  3. 队列:一端插入、另一端删除;先进先出

非线性结构

    1. 二叉树的性质

      (1)第i层有至多2^(i-1)个结点

      (2)深度为k的二叉树至多有2^k-1个结点

      (3)具有n个结点的完全二叉树深度为logn + 1

    1. 有向图、无向图
    2. 连通图

3 Python

  1. 单行备注:#
  2. 多行备注:’’’
  3. 严格缩进

数据类型转换

repr(x):将x转换成表达式字符串

eval(x):计算字符串中的表达式,返回结果(浮点型)

tuple(x):强制类型转换为元组

3.2 序列

索引:

可以为负数,表示从右往左遍历,即倒序

切片:

sname=[start🔚step]

列表方法:

list.append():列表末位插入

list.extend():列表插入其他序列全部元素

list.remove():删除列表中指定值的对象

3.3 元组

  • 不可变,元素可重复

创建:tuplename=(1,2,3)

3.4 集合

  • 元素不可重复

创建:setname={}

方法:

删除元素:setname.remove()

清除全部元素:setname.clear()

添加元素:setname.add()

3.5 字典

  • 键不可重复,值可重复

创建:dictname={’key’:’value’,’key’:’value’;}

方法:

获取值:dictname.get(key)

遍历:dictname.items()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值