这个题目怎样写(新手问题)

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:06:29
编写程序,在有序数列(-23,-16,0,6,8,12,13,18,21,65)中插入一个数据x,使其仍然有序。
stone_dongdong和AlpaBlend朋友:
我想的办法也是这样,循环比较,比x大的数据插入,但是问题在我不懂把后面的数据往后移的算法。是新建一个数组装数据还是用循环一边移动一边输出呢?

后移数据,可以使用memcpy函数!
假设数组为int data[],总数为N,需要在a[m]位置插入:

memcpy(data+m+1,data+m,(N-m)*sizeof(int));
a[m] = x:

排序

循环,遇到第一个比x的的id,然后朝后移位

因为是有序数列,所以不用排序
直接用循环找到第一个比数据x大的位置,将x插入其之前就OK了

就写yjfgyl.

如果不想做后移的话,用vector<int>吧,有插入函数。