C语言——在有序数组中插入一个新的元素,且数组的排列不变

在插入新元素时,数组需要多一个空间,所以在 malloc 时分配 len + 1 的空间。

#include <stdio.h>

#include <stdlib.h>

void insert_arry(int *arr, int len,int target)

{

int index;

for (int i = 0; i < len; i++)

{

if (target >= arr[i] && target <= arr[i + 1])

{

index = i + 1;

break;

}

}

for (int j = len - 1; j >= index; j--)

{

arr[j + 1] = arr[j];

}

arr[index] = target;

for (int i = 0; i < len+1; i++)

{

printf("%d ", arr[i]);

}

}

int main()

{

int len;

int target;

scanf_s("%d", &len);

int *arr = (int*)malloc(sizeof(int) * (len+1));

scanf_s("%d", &target);

if (arr == NULL)

{

return 1;

}

else

{

for (int i = 0; i < len; i++)

{

scanf_s("%d", &arr[i]);

}

}

insert_arry(arr, len, target);

free(arr);

return 0;

}

结果

原数组的大小为9,待插入的元素为50

相关推荐
凭君语未可2 分钟前
常见编程语言的字符串拼接函数
算法
计算机学长大白4 分钟前
C中如何生成随机数并用于编程?
c语言·算法
挂机加载中15 分钟前
7-58 输出不重复的数组元素
数据结构·算法
ゞ 正在缓冲99%…17 分钟前
leecode322.零钱兑换
数据结构·算法·leetcode
Evand J36 分钟前
《MATLAB创新性滤波算法》专栏目录,持续更新中……
开发语言·算法·matlab
爱学习的橙子羊37 分钟前
118.杨辉三角&120.三角形最小路径和
算法
W Y1 小时前
【AR的手势识别算法有哪些】
算法·ar·手势识别
木向1 小时前
leetcode108:将有序数组转化为二叉搜索树
数据结构·c++·算法·leetcode
维维180-3121-14551 小时前
电力系统优化分析/系统机组组合/水电优化运行/鲁棒优化/多能源互补优化/分布鲁棒优化
人工智能·算法·机器学习
AZDNA1 小时前
快消零售行业的知识管理革新:搭建知识库管理系统
大数据·人工智能·算法·知识图谱·零售·facebook