数组元素插入算法

本文探讨了数组作为数据结构的一个关键特性——插入操作。由于数组的元素存储是连续的,当需要插入一个元素时,会导致插入点之后的所有元素都需要向后移动,这在效率上成为其短板。同样,删除元素也会引起类似的问题。尽管数组的查找速度较快,但这种插入和删除的不便限制了其在特定场景中的应用。
摘要由CSDN通过智能技术生成

数组不擅长插入和删除,数组的优点在于它是连续的,所以查找数据速度很快,但是这也是他的一个缺点。正因为他是连续的,所以当插入一个元素时,插入点后所有元素全部都要向后移动,而删除一个元素时,删除点后所有元素全部向前移动。

#include<stdio.h>
int main(void) 
{
	int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, ,215};
	int b[24];
	int Index;
	int num;
	int i;
	printf("请输入插入值的下标:");
	scanf("%d", &Index);
	printf("请输入插入的数值:");
	scanf("%d", &num);
	for(i=0; i<24; ++i) 
	{
		if(i<Index)
		{
			b[i] = a[i];
		}
		else if(i == Index)
		{
			b[i] = num;
		}
		else
		{
			b[i] = a[i-1]; //因为插入了一个新元素
		}
		for(i=0; i<24; ++i)
		{
			printf("%d\x20", b[i]);
		}
		printf("\n");
		return 0;
	}
}
博客
v8worker
05-08 2890
05-06 2869
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值