第三,四次C语言课程笔记
上节课答疑总结
关于数组
定义
数组是构造数据类型之一
数组: 有序数据的集合,用数组名标识
元素: 属同一数据类型,用数组名和下标确定
定义方式
一维数组的引用
1、数组必须先定义,后使用。
2、只能逐个引用数组元素,不能一次引用整个数组。
3、数组元素表示形式: 数组名[下标] ,下标可以是常量或整型表达式
一维数组的初始化
初始化方式:
若只赋值了一部分数组元素,则未赋值部分为0.
二维数组
指针
定义
指针是包含内存地址的变量
指针变量的值是(具有实际值的变量的)地址
关于&
获得变量的地址
关于*
⽤来访问指针的值所表示的地址上的变量
&与*
互相反作⽤
e.g. *&yptr -> * (&yptr) -> * (yptr的地
址)-> 得到那个地址上的变量 -> yptr
一些补充
sqrt 开根号
% 求余数 、/ 取整
排序
冒泡排序
基本思想
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。每一趟排序后的效果都是讲没有沉下去的元素给沉下去。
主要思路:
1.比较相邻的元素。如果第一个比第二个大,就交换它们两个。
2.对每一个相邻元素做同样的工作,从开始第一对到结尾的每一对。在这一 点,最后的元素应该会是最大的数。
3.针对多有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较。
————————————————
选择排序
基本思想
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
主要思路
每一次从无序组的数据元素中选出最小的一个元素,存放在无序组的起始位置,无需组的元素减少,有序组的元素增加,直到全部待排序的数据元素排完。
————————————————