把两个已按升序(由小到大)排列的数组合并成一个新的升序数组。
#include"stdio.h"intmain(){inta[5]={1,9,62,56,100},b[15]={3,14,22,35,44,55,62,70,78,100};inti,k,n,p;printf("-----------a----------");for(i=0;i<5;i++)printf("%4d",a[i]);printf("");printf("-----------b----------");for(i=0;i<10;i++)printf("%4d",b[i]);printf("");for(i=0;i<5;i++){if(a[i]>=b[9+i])//比最后一个b[]大{b[9+i+1]=a[i];}else{for(k=0;k<=9+i;k++)if(b[k]>a[i]){p=k;break;}//找到第一个比a[i]大的b[k],记住位置保存在p中n=10+i;do//数据向后移动{b[n]=b[n-1];n--;}while(n>=p+1);b[/i][/i][/i][/i][/i][/i]=a[i];}}printf("-----------new----------");for(i=0;i<15;i++)printf("%4d",b[i]);printf("");return0;}[/i][/i]
举一反三
- 将两个升序数组合并成一个升序数组,合并结果存在第一个数组中。要求:先输入数组的长度,然后对数组个元素进行由小到大的初始化。
- 【程序改错】功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。1
- 编写一个程序,将输入的数据插入到一个已按升序排好的数组中,要求插入后的数组仍然按升序排列。
- 现在给出两个数组:数组a{1,7,9,11,13,15,17,19}和数组b{2,4,6,8,10},将两个数组合并为数组c,按升序排列。 学生答案:
- 编写一个程序,将输入的数据插入到一个已按升序排好的数组中,要求插入后的数组仍然按升序排列。已定义假定输入已排序好的6个数,1,2,3,5,6,7,插入4,输出1,2,3,4,5,6,7
内容
- 0
升序排列数组且键值对保持的函数是___
- 1
对于含有N个整数的一维数组,用选择排序法进行升序排序。
- 2
编一个程序, 从键盘输入 10 个实数, 存入一个数组, 用冒泡法对这个 数作升序排序
- 3
以下程序分别在a数组和b数组中放入an 1和bn 1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中。
- 4
为了将数组按升序排列,可以使用Arrays类的sort()方法将转换后的数组进行排列