永发信息网

新人不懂,都在说什么0001,代码是怎么区分的

答案:2  悬赏:40  手机版
解决时间 2021-11-28 23:29
  • 提问者网友:萌卜娃娃
  • 2021-11-27 23:44
新人不懂,都在说什么0001,代码是怎么区分的
最佳答案
  • 五星知识达人网友:迟山
  • 2021-11-27 23:55
#include
void Rearrangement(int *arr,int len,int a)
{
int i, j;

for(i=0;i{
if(a}//这个循环的作用是找到a应该插入到哪个位置
for(j = len; j > i; j --)
{
arr[j] = arr[j-1]; //对于i位置以后的数据,顺序向后移动一位,给a留出插入的空间
}
arr[i] = a;//插入a

}
int main()
{
int arr[5]={3,4,5,6};
Rearrangement(arr,4,2);//len应该是当前数组中的元素个数
for(int i=0;i<5;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
代码优化一下 从后往前找位置,找的同时做移动 就可以改成一个循环解决问题
#include
void Rearrangement(int *arr,int len,int a)
{
int i;

for(i = len - 1; i >= 0; i --)
{
if(arr[i] <= a) break;//这个是之前的找位置功能
arr[i+1] = arr[i]; //一边找 一边移动
}
arr[i+1] = a;//插入a

}
int main()
{
int arr[5]={3,4,5,6};
Rearrangement(arr,4,2);//len应该是当前数组中的元素个数
for(int i=0;i<5;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
全部回答
  • 1楼网友:長槍戰八方
  • 2021-11-28 00:49
sskx代码
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯