顺序表-增(插入)
来源:互联网 发布:软件质量指标 编辑:程序博客网 时间:2024/06/11 04:55
1)例:设数据集合data={2,5,7,8,10,14,16},升序有序,将某个关键字key,插入到数据集合中,使其依然有序。
①int JosephRing(int data[],int n,int key){ int i,j; for(i=0;i<n && data[i]<key;i++); for(j=n;j>i;j--) { data[j]=data[j-1]; } data[j]=key; return n+1;}②int JosephRing(int data[],int n,int key){ int i; for(i=n-1;i>0 && data[i]>key;i--) { data[i+1]=data[i]; } data[i+1]=key; return n+1;}
2)例:设data1和data2是两个升序列,将data1和data2和并成一个升序序列。
如:data1={2,3,4,5,8,10,12,14,15}
data2={3,3,5,6,7,8};
①int Merge(int data1[],int n1,int data2[],int n2,int data[]){ int i,j,k; i=j=k=0; while(i<n1 && j<n2)//当两者都未完时 { if(data1[i]<data2[j]) data[k++]=data1[i++]; else data[k++]=data2[j++]; } //当有一者进行判单完时,需要对两者进行判断 while(i<n1) { data[k++]=data1[i++]; } while(j<n2) { data[k++]=data1[j++]; } return k;}②int Merge(int data1[],int n1,int data2[],int n2,int data[]){ int i,j,k; i=j=k=0; while(i<n1 && j<n2) { if(data1[i]<data2[j]) data[k++]=data1[i++]; else data[k++]=data2[j++]; } //当有一者进行判单完时,进行抽象 int *s=data1; if(j<n2) { s=data2; i=j; n1=n2; } while(i<n1) { data[k++]=s[i++]; } return k;}③int Merge(int data1[],int n1,int data2[],int n2,int data[]){ int i=0,j=0,k=0; while(i<n1 || j<n2) { /* 将data1的值给data的条件: ⅰ.data2进行完 ⅱ.data2未完,data1未完且data1当前值小于data2当前值 其余情况data2值给data */ if(j==n2 || (i<n1 && data1[i]<data2[j])) data[k++]=data1[i++]; else data[k++]=data2[j++]; } return k;}
阅读全文
0 0
- 顺序表-增(插入)
- 顺序表基本操作(插入、删除)
- (顺序有序表)插入元素
- 顺序表的插入
- 顺序表的插入
- 顺序表插入算法
- 顺序表的插入
- 顺序表插入详解
- 顺序表的插入运算
- 【应用】顺序表的插入
- 顺序表插入 删除 查找
- 有序顺序表的插入
- 顺序表插入数据算法
- 有序顺序表的插入
- 顺序表的实现(包含插入,删除,及查找)
- 线性表的输入输出插入删除查找(顺序表示)
- 顺序表有关操作(查找、插入、删除)
- 顺序表(删除 、查找、插入、合并、输出)
- Python爬虫——实战四:爬取亚马逊的商品价格
- 网络流之最大流算法——EK算法(通俗讲解)
- Spring NoSuchBeanDefinitionException原因分析
- 欢迎使用CSDN-markdown编辑器
- 基于Jquery实现的手风琴
- 顺序表-增(插入)
- 威威猫系列故事——打地鼠
- HDU4585 Shaolin(treap)
- 多选recycleview+ checkbox(原理是用一个集合记录每个条目的状态)
- Python:numpy中shape和reshape的用法
- 史上最全web.xml配置文件元素详解
- 支付宝小程序开发教程
- Iframe使用总结(实战)
- 按点击量排序