一维数组
数组求平均:
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int sum = 0;
for (int i = 0; i10; i++)
{
sum += arr[i];
}
printf(The sum is: %dn, sum);
printf(The average is: %fn, (float)sum / 10);
最值:
假设数组的第一个成员为最值,然后依次和后续成员比较
最值
次最值:
int arr[10] = {9999,-99999,8,2,0,100,-3,5,9,7};
int max = arr[0];
int secMax;
int min = arr[0];
int secMin;
for (int i = 1; i10; i++)
{
if (arr[i]max)
{
secMax = max;
max = arr[i];
}
else if (secMaxarr[i])
{
secMax = arr[i];
}
if (arr[i]min)
{
secMin = min;
min = arr[i];
}
else if (secMinarr[i])
{
secMin = arr[i];
}
}
printf(The max is: %dnThe secMax is: %dn, max, secMax);
printf(The min is: %dnThe secMin is: %dn, min, secMin);
排序:
排得有顺序方便查找
选择排序
选择排序
总共n个数,比较n-1趟
比较的过程不可少
但是交换的过程可以减少
可以通过减少交换的次数来提升性能
交换减少为1次
选择排序优化
线性查找 - 从头找到尾O(n)
查找,数据存不存在,下标是多少
线性查找
折半查找 - 效率非常高O(log n)
要求数组有序为前提
折半(二分法)查找
一维数组和二维数组的区别
一维数组和二维数组区别
单行或单列的数组,称为一维数组,多行多列(含2行2列)的数组是二维数组。数组和数组公式的区别数组,就是元素的集合,按行、列进行排列。数组公式:就是包含有数组运算的公式。ctrl+shift+enter,三键结束,这个过程就是告诉excel请与数组运算的方式来处理本公式,反馈一个信息,就是在公式的外面添加一对花括号。
Array数组所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组数组是用于储存多个相同类型数据的集合。
数组的来源C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。
数组
C 数组
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
声明数组
在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ];
这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:
double balance[10];
现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
初始化数组
在 C 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。
如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
您将创建一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:
balance[4] = 50.0;
上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面所讨论的数组的的图形表示:
访问数组元素
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:
double salary = balance[9];
上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:
实例
#include stdio.h int main (){int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */int i,j;/* 初始化数组元素 */for ( i = 0; i10; i++ ){n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */}/* 输出数组中每个元素的值 */for (j = 0; j10; j++ ){printf(Element[%d] = %dn, j, n[j] );}return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
Element[0] = 100Element[1] = 101Element[2] = 102Element[3] = 103Element[4] = 104Element[5] = 105Element[6] = 106Element[7] = 107Element[8] = 108Element[9] = 109
|一维数组
一维数组 一维数组和二维数组的区别 数组