|
发表于 2021-1-2 02:29:51
|
显示全部楼层
- #include<stdio.h>
- int main()
- {
- int a[10]={1,3,5,7,9,11,13,15,17,19};
- int b[10]={2,4,6,8,10,12,14,16,18,20};
- int i,j;//用于双层循环
- int k=9;//内层循环的初始值
- int t=19;//目标数组的下标值
- //倒序遍历两个数组,这样不用每次都向后移动各个数值
- for (i=9;i>=0;i--)
- {
- for (j=k;j>=0;j--)
- {
- if(a[i]>=b[j])//若数组a当前的值大于数组b当前的值,那么就跳出外层循环,将数组a当前的值放到目标位置
- break;
- a[t--]=b[j];//否则,将数组b当前的值放到目标位置,同时t--,目标位置向前移动
- k--;//数组b中已经有一个进行排序了,下次循环的时候就少了一个
- }
- a[t--]=a[i];//将数组a当前的值放到目标位置,同时t--,目标位置向前移动
- }
- for(i=0;i<20;i++)
- printf("%d\n",a[i]);
- return 0;
- }
复制代码 |
|