顺序表
MyDreamingCode
Life is not a bed of roses.
展开
-
求a、b、c三者关系的最小距离
/*定义三元组(a,b,c)(a、b、c均为正数)的距离D=|a-b|+|b-c|+|c-a|。给定3个非空整数集合S1、S2和S3,按升序分别存储在3个数组中。请设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)(a属于S1,b属于S2,c属于S3)中的最小距离。例如S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为2,相应的三元组为(9,10,9)*/#include<stdio.h>#include&l.原创 2021-09-10 06:39:07 · 1058 阅读 · 0 评论 -
输出最小正整数
/*给定一个含n(n>=1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define InitSize 10typedef int ElemType;typedef struct{ ElemType *d.原创 2021-09-10 06:38:51 · 683 阅读 · 0 评论 -
顺序表-查找主元素
/*已知一个整数序列A=(a0,a1,..,an-1),其中0<=ai<n(0<=i<n)。若存在ap1=ap2=...=apm=x且m>n/2(0<=pk<n,1<=k<=m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;有如A=(0,5,5,3,5,1,5,7),则A中没有主元素。假设A中的n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A的主元素。若存在主元素,则输出该元素,否则输出-1*/.原创 2021-09-10 06:38:30 · 241 阅读 · 0 评论 -
求两个序列的共同中位数
/*一个长度为L(L>=1)的升序序列S,处在第L/2(向上取整)个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数*/#include<stdio.h>#include<stdlib.h>#d.原创 2021-09-10 06:38:07 · 250 阅读 · 0 评论 -
顺序表-折半查找
/*线性表(a1,a2,a3,...,an)中的元素递增有序且按顺序存储于计算机内。要求设计一个算法,完成用最少时间在表中查找数值为x的元素,若找到,则将其与后继元素位置相交换,若找不到,则将其插入表中并使表中元素仍递增有序*/#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef int ElemType;typedef struct{ ElemType *data; int length;}.原创 2021-09-09 19:24:03 · 1006 阅读 · 0 评论 -
两个线性表整体位置互换
/*已知在一维数组A[m+n]中依次存放两个线性表(a1,a2,a3,...,am)和(b1,b2,b3,...,bn)。试编写一个函数,将数组中两个顺序表的位置互换,既将(b1,b2,b3,...,bn)放在(a1,a2,a3,...,am)的前面*/#include<stdio.h>#include<stdlib.h>#define InitSize 50typedef int ElemType;typedef struct{ ElemType *data; i.原创 2021-09-09 19:22:54 · 287 阅读 · 0 评论 -
合并两个有序表,使其成为新的有序表
/*将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表*/#include<stdio.h>#include<stdlib.h>#define InitSize 50typedef int ElemType;typedef struct{ ElemType *data; int length; int maxSize;}SqList;bool InitList(SqList &L){ L.data = (ElemType*)mallo.原创 2021-09-09 19:21:01 · 538 阅读 · 0 评论 -
顺序表-删除重复的元素(有序)
/*从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同*/#include<stdio.h>#include<stdlib.h>#define InitSize 20typedef int ElemType;typedef struct{ ElemType *data; int length;}SqList;bool InitList(SqList &L){ L.data = (ElemType*)malloc(sizeof(ElemTy.原创 2021-09-09 19:19:24 · 595 阅读 · 0 评论 -
顺序表-删除值在s~t之间的所有元素(无序)
/*从顺序表中删除其值在给定值s与t之间(包含s和t,要求s<t)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行*/#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef int ElemType;typedef struct{ ElemType *data; int length;}SqList;bool InitList(SqList &L){ L.da.原创 2021-09-09 19:16:55 · 172 阅读 · 0 评论 -
顺序表-删除值在s~t之间的所有元素(有序)
/*从有序顺序表中删除其值在给定值s与t之间(要求s<t)的所有元素,若s或t不合理或线性表为空,则显示出错信息并退出运行*/#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef int ElemType;typedef struct{ ElemType *data; int length;}SqList;bool InitList(SqList &L){ L.data =.原创 2021-09-09 19:14:56 · 460 阅读 · 0 评论 -
顺序表-删除所有值为x的元素
/*对长度为n的顺序表L,编写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素*/#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef int ElemType;typedef struct{ ElemType *data; int length;}SqList;bool InitList(SqList &L){ L.data = (E.原创 2021-09-09 19:13:08 · 1581 阅读 · 0 评论 -
顺序表-逆置
*设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为o(1)*/#include<stdio.h>#include<stdlib.h>#define InitSize 10typedef int ElemType;typedef struct{ int length; ElemType *data;}SqList;bool InitList(SqList &L){ L.data = (ElemType*)malloc(sizeof(E.原创 2021-09-09 19:11:08 · 89 阅读 · 0 评论 -
顺序表-输出最小值
/*从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。*/#include<stdio.h>#include<stdlib.h>#define MaxSize 100typedef int ElemType;typedef struct{ ElemType *data; int length;}SqList;bool InitSqList(SqList &L){.原创 2021-09-09 19:09:19 · 542 阅读 · 0 评论 -
顺序表基本操作
顺序表-基本操作//线性表的基本操作#include<stdio.h>#include<stdlib.h>#define InitSize 50#define MaxSize 100typedef int ElemType;/*静态分配数组typedef struct{ ElemType data[MaxSize]; int length;}SqList;*///动态分配数组typedef struct{ ElemType *dat...原创 2021-09-09 19:03:06 · 58 阅读 · 0 评论