/**
* 用顺序表实现 王道P18 T7
*
* ①算法思想:
* 归并
*
* ②数据结构:
* typedef struct{
* int data[MaxSize];
* int length;
* }SqList;
*
* ③算法设计
*/
#include <stdio.h>
#define MaxSize 100
typedef struct{
int data[MaxSize];
int length;
}SqList;
SqList Merge(SqList &L1,SqList &L2){
SqList L;//空间复杂度不高效,为O(n)
int i = 0,j = 0,k = 0;
while(i < L1.length && j < L2.length){//当两个顺序表都没有结束时
if(L1.data[i] < L2.data[j])//此处是两个递增的合成一个递增的,如果是两个递减的合成一个递减的只要把<改成>即可
L.data[k++] = L1.data[i++];
else
L.data[k++] = L2.data[j++];
}
while(i < L1.length)
L.data[k++] = L1.data[i++];
while(j < L2.length)
L.data[k++] = L2.data[j++];
L.length = k;
return L;
}
王道书P18 T7(静态顺序表实现)
于 2022-07-01 15:40:41 首次发布