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

相关推荐
亮子AI4 分钟前
【Tiptap】如何使用 ordered list?
数据结构·list·tiptap
南莺莺6 分钟前
二叉排序树的创建和基本操作---C++实现
数据结构·c++·算法··二叉排序树
仰泳的熊猫9 分钟前
1061 Dating
数据结构·c++·算法·pat考试
Fcy64810 分钟前
二叉搜索树(C++实现)
开发语言·数据结构·c++·二叉搜索树
CoderYanger14 分钟前
A.每日一题——1523. 在区间范围内统计奇数数目
java·数据结构·算法·leetcode·职场和发展
surtr121 分钟前
Round 1019(div2) CD
数据结构·c++·算法·贪心算法·stl
Hcoco_me29 分钟前
大模型面试题14:K-means聚类算法全解析(通用场景+深度拓展)
算法·kmeans·聚类
Jay200211142 分钟前
【机器学习】30 基于内容的过滤算法
人工智能·算法·机器学习
冰西瓜6001 小时前
分治(二)算法设计与分析 国科大
数据结构·算法
小小晓.1 小时前
Pinely Round 2 (Div. 1 + Div. 2)
c++·算法