C语言 数组1

这篇博客介绍了C语言中的数组概念,包括一维数组,并探讨了数组的排序算法,如冒泡排序和选择排序,它们的时间复杂度为O(n^2)。文章还涉及数组元素的查找,以及一些数组相关的编程问题,如求斐波拉契数列的前20项和,重新排列数组使负数位于前面,找到数组中的第二大数据元素,以及求连续子数组的最大和。最后讨论了数组部分和问题,提出穷举法和更高效的方法来解决。
摘要由CSDN通过智能技术生成

数组 :
一组具有相同类型的数据元素集合,在C语言中有一维数组,二维数组,多维数组,这些都可以看成一维数组。数组元素的存储地址是相邻的。

1.一维数组

多维数组也可以看成一维数组,如二维数组,可以看成一维数组,这个一维数组的元素为一个数组。
1)定义:int a[10]={
   0};
	数组元素的类型  数组名【整形表达式】= {
   初始值};
	数组元素的类型:
			可以是任意的合法类型(基本类型、构造类型、指针类型等)都可以
			typeof(a) --> 数组的类型
			typeof(a[0]) -> 数组元素的类型
	数组名: 
			对象的名字, “标识符”		
	整形表达式: 
			指定了数组里面元素的个数。
			C语言规定定义数组的时候,要指定数组里面元素的个数
			“常量表达式”
2)一维数组的引用
	数组名[下标];   注意数组的下表是从零开始,到n-1结束,注意防止越界。
3)一维数组在内存中的存放
	在C语言中,用一块连续的存储空间,地址从低到高依次存放每个元素。
4)一维数组初始化
	1.给每个数赋值 
			int a[5]={
   1,2,3,4,5};
			=>a[0]=1;   a[1] = 2 .....
	2.给部分赋值(其余自动补0int a[5] = {
   1,2};
			=>int a[5] = {
   1,2,0,0,0};
	3.可以省略元素个数(赋值默认为全部赋值)
			int a[] ={
   1,2,3,4,5};
			=>int a[5];

2.排序

	将数组中的元素交换位置,使它具有大小循序关系。

冒泡排序:

	遍历整个数组,从第一个开始,每一个都与他的后一个进行比较,如果不满足循序则交换,如果要完成从小到大排序,那么每趟冒泡都会将最大的那个值替换到最后。	
	最好的情况下,本身就是有序
				O(1)		
	最坏的情况下,本身是一个倒序
				O(n^2)
关键代码:
for(m = 0; m < N-1; m++)
{
   
	for(i = 0; i < N-1 - m; i++)
	{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值