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 分钟前
红黑树介绍
数据结构·c++
QING61819 分钟前
一文带你搞懂HashSet和TreeSet的区别!!!
android·java·数据结构
衡玖20 分钟前
c语言闯算法--常用技巧
c语言·数据结构·算法
QING61826 分钟前
详解:LinkedList的工作原理和实现
android·java·数据结构
QING61828 分钟前
详解:Set集合是如何保证元素不重复的
android·java·数据结构
Lill_bin28 分钟前
Java中的分布式锁:原理、实现与最佳实践
java·开发语言·数据结构·分布式·算法·排序算法·maven
愈努力俞幸运34 分钟前
vs code配置 c/C++
c语言
迷路爸爸18038 分钟前
从零构建逻辑回归: sklearn 与自定义实现对比
算法·逻辑回归·sklearn
QING61841 分钟前
详解:HashMap的工作原理和实现
android·数据结构·app
头发尚存的猿小二1 小时前
2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈
c语言·c++·蓝桥杯