C# · 12月 20, 2021

菜鸟的c语言课程笔记③

数组是线性储存一组具有相同类型的变量的集合。数组的创建需要具有数组名、数组的基类型、数组的范围几个关键要素。注意:

①数组元素不能为零个

②数组的下标都是从零开始的

③定义数组不能用变量定义数组的大小

④数组定义大小要合适,如果定义变量范围太小,会造成越界的情况,可能会损坏其他储存单元造成严重后果

⑤定义二维以及多余二维数组时,每一维的大小都要声明

在数组的排序和查找中,有许多可以借鉴运用的成熟的方法,以此来优化算法。例如交换法、选择法、插入排序法、冒泡法、快速排序法等等。

在数组的排序中,其中也已经有许多现成的可以从头文件中调用的,如头文件调用的sort排序,是一种从小到大排序的算法,这个程序比现在我们写出来的升序排列的算法效率高的多。

在数组的查找中,基本的查找有顺序查找和折半查找两个大致方向。但这两类查找基础都是要将整个数组做升序或降序的排列处理后才能做。其中当数据量特别大时,用二分查找可以大大减少运算量,提高算法查找的效率。

还有bool类型做取反处理有时也是一个非常不错的小技巧,可以有效分离所需的量。

做题过程中被各种如开关门问题、约瑟夫问题、爬楼梯问题、斐波那契数列问题、回文数咧问题等经典问题深深折服。感觉数组不仅仅是要调用,要有精妙的思维。

学习数组后最大的感受就是方便了,数组虽然不如循环能有什么创造性的花样,但是为我们提供了一个一次性输入大量数据的方法。方便了我们做数据统计,查询之类的工作。