这里给出我觉得需要注意下标的代码
题目:将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表
思路:先循环遍历其中的一个顺序表,将其中元素比较完后放置在一个新的顺序表里,然后再检查是否有顺序表未遍历完的部分,如未遍历完直接接上即可(此时后面元素有序)
代码:
/**
本次测试数据为:
l = {
{1,2,3,4,5},5};
s = {
{1,2,3,4,5},5};
输出数据为:
1,1,2,2,3,3,4,4,5,5
**/
taticSqlist mergetwolist(StaticSqlist l1,StaticSqlist l2)
{
StaticSqlist l;
int i=0,j=0,k=0;
while(i<l1.length && j<l2.length){
if(l1.data[i] > l2.data[j]){
/**
注意这里的不等号,必须是大于,因为顺序表是由小到大的顺序进行排列的
为什么是大于呢?如果是大于的话才能按照从小到大的顺序进行排列,下一个链表的元素才能继续向后衔接
例举数据:l1{1,2,3,4,5} l2{1,2,3,4,5}
(例如大于号时,l1的第一个元素是1,l2的第一个元素也是1,此时执行到else里的语句,然后进行i++,现在i等于2了,执行if体里的语句,l2的元素被衔接,以此类推...)
(反观如果小于号时,l1的第一个元素是1 ,l2的第一个元素也是1,此时执行到eles里面的语句 然后进行i++,现在i等于2了