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

相关推荐
元亓亓亓1 小时前
LeetCode热题100--79. 单词搜索
算法·leetcode·职场和发展
hazy1k1 小时前
ESP32基础-Socket通信 (TCP/UDP)
c语言·单片机·嵌入式硬件·网络协议·tcp/ip·udp·esp32
dvvvvvw1 小时前
x的y次幂的递归函数.c
c语言
司铭鸿1 小时前
化学式解析的算法之美:从原子计数到栈的巧妙运用
linux·运维·服务器·算法·动态规划·代理模式·哈希算法
ekprada2 小时前
DAY 18 推断聚类后簇的类型
算法·机器学习·支持向量机
生信大表哥2 小时前
Python单细胞分析-基于leiden算法的降维聚类
linux·python·算法·生信·数信院生信服务器·生信云服务器
玫瑰花店3 小时前
万字C++中锁机制和内存序详解
开发语言·c++·算法
靠沿3 小时前
Java数据结构初阶——LinkedList
java·开发语言·数据结构
Elias不吃糖4 小时前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode