c语言sscanf函数的用法是什么
286
2022-09-23
C++数组中插入元素。
问题:
在已经排序的数组中插入一个数,插入后的数组仍是有序的。
为了简化问题,将顺序规定为升序数组类型为double。
插入函数的代码如下:
//将data插入到数组arr中,使插入后仍是升序。void insert(double data,double arr[],int len){ for (int i = 0; i < len; ++i) { if (data 1.遍历数组,(0到len-1), 遇到第一个比data大的数arr[i] 就将data插入到这个位置i. 插入的方法: 由于多了一个数,原来的数组大小应该+1才能装下这些数。 所以数组长度 len++;由于长度变化了,数组也就变了。于是用arr_t 来 new 一个新的数组。 将第i个元素以及i后面的元素向后移,将data插入到i位置。然后将i之前的元素复制到arr_t数组中, 此时得到了插入了data后的数组arr_t。 再将arr_t 深复制到原来的数组arr中即可。 然而这个方法有问题,当data>=arr[len-1]时,即arr数组中没有比dada大的数时,上面的方法就没法处理了。 于是对这种情况进行处理。 这种情况不需要后移,只要将data放在最后就可以。 void insert(double data, double arr[], int len){ if (data >= arr[len - 1]) { len++; double *arr_t = new double[len]; arr_t[len - 1] = data; for (int m = 0; m < len - 1; m++) arr_t[m] = arr[m]; //深复制arr_t到arr中 delete[]arr; arr = new double[len]; for (int index = 0; index
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~