- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 DS-008 顺序表-寻找主元素
题目:已知一个整数序列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个元素保存在一个一维数组中,请设计一个尽可能高效的算法...
2018-09-30 19:57:35 469
原创 DS-007 顺序表-寻找两个序列的中位数
题目:一个长度为L(L≥1)的升序序列S,处在第[L/2]个位置的数称为S的中位数。例如列S1=(11,13,15,17,19),则S1中的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若92=(2,4,6,8,20),则.S1和S2的中位数是11。现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。要求: (1)给...
2018-09-30 18:15:21 1508
原创 DS-006 顺序表-循环左移p位
0 1 2 3 4 5 6 7 8 9 循环左移4位:4 5 6 7 8 9 0 1 2 3 题目:设将n(n>1)个整数存放到一维数组R中。设计一个在时间和空间两方面尽可能高效的算法。将R中的序列循环左移P(0<P<n)个位置,即将R中的数据由(x0,...
2018-09-30 16:35:25 771
原创 DS-005 顺序表-二分查找
题目:线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储在计算机中。要求设计一个算法完成用最少时间在表中查找值为x的元素,若找到将其与后继元素位置相交换,若找不到将其插入表中并使表中元素仍递增有序。算法思想:有序顺序表,可以用二分查找(折半查找)。int BinarySearch(ElemType A[], ElemType x){ int low = 0, high = ...
2018-09-30 15:28:44 751
原创 DS-004 顺序表-删除值重复的元素
题目:从有序顺序表中删除所有其值重复的元素,使表中的值均不同。算法思想:有序顺序表,值重复的元素一定在连续的位置上。用i记录不重复的元素。用顺序表前面的i个位置保存不重复的元素,后面的元素如果与要保留的顺序表最后一个元素不相同,则留下。扫描完成后,留下的0~i位就是值不重复的元素。代码:bool Delete_Same(SeqList &L){ if(L.length==0...
2018-09-30 11:17:32 2697 1
原创 DS-003 顺序表--删除所有值为x的元素
题目:长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素。算法思想:用k记录不等于x的元素个数,即需要保存的元素个数。边扫描L边统计k,并将不等于x的元素向前放置k位置上,最后修改L的长度。代码:void del_x(Sqlist &L, ElemType x){ int k = 0; for(i=0; i...
2018-09-29 12:43:38 1517
原创 DS-002 顺序表--逆置所有元素
问题.设计一个高效的算法,将顺序表所有元素逆置,要求算法的空间复杂度为O(1)。算法思想:将第一个元素与最后一个元素互换,第二个元素与倒数第二个元素互换,以此类推。伪代码:void Reverse(SqList &L){ ElemType temp; //中间变量 for(i=0; i<L.length/2; i++){ temp = L.data[i]; ...
2018-09-28 23:41:32 533
原创 DS-001 顺序表--删除最小值的的元素
题目:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行。算法思想:搜索整个顺序表,查找最小值元素并记住其位置,搜索结束后用最后一个元素填补空出的最小值元素位置。代码(伪代码):bool Del_Min(sqList &L, ElemType &value) { if(L.leng...
2018-09-28 22:55:39 1887 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人