欢迎光临
我们一直在努力

linux基础,C语言进阶部分,一维整型数组,找极值极其下标,冒泡排序和选择排序

数组

基本概念

相同类型有限元素的集合。

分类:

        一维数组:a[  ];

        二维数组:a[  ] [  ];

        多维数组:a[  ] [  ] [  ]……;

一维整型数组

数组的定义

数据类型  数组名 [元素的个数] ;

int   a  [   ];

注意:元素个数不能为变量,或变量表达式,因为仅在定义时,不能为变量,因为要分配内存空间大小。

数组元素的访问

数组名 [ 元素下标 ];

                a [ 0];访问第一个元素。

注意:元素下标为0—-元素个数-1,如果使用了a[元素个数],是错误的,发生了越界访问。

数组元素的初始化:

注意:初始化!=赋值

1.全部初始化:int a[ 5 ] = {1,2,3,4,5};

2.局部初始化:int a[ 5 ] = {1,2,3};      未给定初值的元素,会初始化为0,

3.默认初始化:int a[   ] = {1,2,3,4,5};     未给定元素个数,元素个数由后面的赋值数量决定。

数组的存储

1.空间大小:每个元素所占空间大小 * 元素个数

求获得数组元素个数大小:  len = sizeof(a) / sizeof(a[ 0 ]);

2.存储特性:

        1.连续性:数组存放元素空间连续

        2.有序性:存放元素的顺序有序

        3.单一性:数组元素类型一致

从终端接受数据(数组)

代码如下

通过循环遍历对每个元素进行赋值

int a[5] = {0};
int i = 0;

for(i = 0; i < len;i++)
{
scanf("%d",&a[i]);
}

数组中常见的算法操作

1.获取数组元素的最大/最小值及其下标

求下标

2.数组元素的逆序排列

3.冒泡排序

冒泡排序是一种简单的交换排序算法。它重复地遍历待排序的列表,比较相邻的元素,如果顺序错误就交换它们。每一轮遍历会将当前未排序部分的最大元素“冒泡”到正确位置。

算法步骤

  • 从列表的第一个元素开始,依次比较相邻的两个元素。
  • 如果前一个元素大于后一个元素,交换它们的位置。
  • 对每一对相邻元素重复上述操作,直到列表末尾。此时最大的元素会“沉”到列表末尾。
  • 重复上述步骤,每次遍历的范围逐渐缩小(排除已排序的部分),直到列表完全有序。
  • 4.选择排序

    选择排序是一种基于比较的排序算法,每次从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾。

    算法步骤

  • 遍历列表,找到未排序部分的最小元素。
  • 将最小元素与未排序部分的第一个元素交换位置。
  • 重复上述步骤,每次未排序部分的起始位置向后移动一位,直到列表完全有序
  • 赞(0)
    未经允许不得转载:171主机测评 » linux基础,C语言进阶部分,一维整型数组,找极值极其下标,冒泡排序和选择排序
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址