![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
顺序表
courtesy.
hhhhhhh
展开
-
G-最大子段和之动态规划法
int Maxsum(SqList &L, int n){ int thissum, sum; thissum = sum = 0; for(int i = 0; i < n; i ++) { thissum = thissum + L.elem[i]; if(thissum < 0) thissum = 0; else if(thissum > sum) sum原创 2021-09-10 15:30:26 · 43 阅读 · 0 评论 -
F-最大子段和之分治递归法
题目描述:本题目要求用分治递归法求解,除了需要输出最大子段和的值之外,还需要输出求得该结果所需的递归调用总次数。int count = 0;int Max(int a, int b){ if(a > b) return a; else return b;}int Maxsum(SqList &L, int l, int r){ count ++; int i, sum; int leftsum, rightsum; if(l == r)原创 2021-09-10 15:28:53 · 63 阅读 · 0 评论 -
E-有序顺序表查询-二分查找
//二分查找int Find(SqList &L, int x, int l, int r){ while(l <= r) { int mid =(l+r)/ 2; if(x < L.elem[mid]) r = mid-1; else if(x > L.elem[mid]) l = mid+1; else return mid原创 2021-09-10 15:00:56 · 139 阅读 · 0 评论 -
D-有序顺序表归并
void Merge(SqList &LA, SqList &LB, SqList &LC){ int i, j, k; i = j = k = 0; while(i < LA.length && j < LB.length) { if(LA.elem[i] < LB.elem[j]) { LC.elem[k] = LA.elem[i]; k ++; i ++;原创 2021-09-10 14:51:22 · 60 阅读 · 0 评论 -
C-元素位置互换之逆置算法
题目描述:一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N)、空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。void Exchange(SqList &L, int l, int r){ int t; while(l < r) {原创 2021-09-09 18:08:28 · 47 阅读 · 0 评论 -
B-多余元素删除之建表算法
void Create(SqList &L, int m) //m为数据元素的个数{ int i, j, x; L.length = 0; for(i = 0; i < m; i ++) { scanf("%d", &x); for( j = 0; j < L.length; j ++) { if(x == L.elem[j]) break;原创 2021-09-09 17:54:00 · 49 阅读 · 0 评论 -
A-多余元素删除之移位算法
多余元素删除之移位算法#include<stdio.h>typedef struct{ int *elem; int length; int listsize;}SqList;void InitList(SqList &L){ L.elem = new int[10005]; L.listsize = 10005; L.length = 0;}void Create(SqList &L, int m){ f原创 2021-09-09 17:44:28 · 89 阅读 · 0 评论