C语言 合并有序顺序表
来源:互联网 发布:订票软件哪个好 编辑:程序博客网 时间:2024/04/27 15:31
思路:
如有有序表A,B: A:1 2 4 5 5 B:2 3 3 6 7
1.一开始 i 指向 A的开头元素(即1),同理 j 指向 B开头元素(2)
2.A[i] 和 B[j] 中对比,选较小的放入新表C中
核心代码:
bool func(SeqList A,SeqList B,SeqList C){if(A.length + B.length > C.length)return false;int i=0,j=0,k=0;while(i<A.length && j<B.length){if(A.data[i] <= B.data[j])C.data[k++] = A.data[i++];else if(B.data[j] < A.data[i])C.data[k++] = B.data[j++];}while(i < A.length){C.data[k++] = A.data[i++]}while(j < B.length){C.data[k++] = B.data[j++]}C.length = k;return true;}
#include <stdio.h>int main(){ int d1[5]={1,5,6,7,8}; int d2[8]={2,3,7,8,10,11}; int d3[20]={0}; int i=0; int j=0; int k=0; int n=0; while(i<5 && j<8) { if(d1[i] < d2[j]) d3[k++] = d1[i++]; else if(d1[i] > d2[j]) d3[k++] = d2[j++]; } while(i<5) { d3[k++] = d1[i++]; } while(j<8) { d3[k++] = d2[j++]; } for(n;n<k;n++) { printf("%d\n",d3[n]); } return 0;}
结果:
1 2 3 5 6 7 7 8 8 10 11
阅读全文
0 0
- C语言 合并有序顺序表
- C语言实现合并两个有序(从小到大)顺序表为一个顺序表
- 有序顺序表合并
- c语言:顺序表的实现(二 ) 就地逆置,有序合并,大小调整。
- 递归合并有序链表C语言
- 两个有序顺序表合并
- 顺序有序表的合并
- 合并两个有序链表,合并后依然有序(C语言)
- 常见C语言面试题之十:有序表合并
- 【C语言】两个有序单链表的合并
- 数据结构整理_有序顺序表合并
- 【实验】两个有序顺序表的合并
- 《数据库》顺序有序表的合并
- 【学习笔记】有序顺序表的合并
- c语言,用顺序表的原理合并两个集合
- C语言实现:合并两个有序的数组,合并后的数组依然有序
- 将两个递增的有序链表合并为一个递增的有序链表(C语言编程实现)
- 将有序表A、B合并为有序表C
- ./(点斜杠)与. (点空格)执行脚本文件的区别
- 程序员的八重境界
- 基于Python flask全文搜索
- Starting MySQL... ERROR! The server quit without updating PID file 解决方法
- 日志处理
- C语言 合并有序顺序表
- Kafka单机、集群模式安装详解(一)
- 微信授权登陆相关链接(.net Core)
- tensorflow笔记:流程,概念和简单代码注释
- 如何解决Ecilpse启动慢
- 解决maven官方库中没有oracle jdbc驱动的问题:Missing artifact com.oracle:ojdbc14:jar:10.2.0.3.0
- hdu 1874 dijkstra算法
- HTTP协议详解(二)
- Jquery $(this)