第3周【项目4
来源:互联网 发布:手机网络加速哪个好用 编辑:程序博客网 时间:2024/05/22 04:56
问题描述:
定义一个采用顺序结构存储的线性表,设计算法完成下面的工作:
1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
2、将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
在这需要利用之前设计的算法库“list.h”
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名称:20170921.cpp *作者:李小同 *完成日期;2017年9月21日 *版本号;v1.1 * *问题描述:定义一个采用顺序结构存储的线性表,设计算法完成下面的工作: 1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1); 2、将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。 *输入描述:输入线性表 *程序输出:输出线性表*/
#include "list.h"#include <stdio.h>//删除线性表中,元素值在x到y之间的元素void delx2y(SqList *&L, ElemType x, ElemType y){ int k=0,i; //k记录非x的元素个数 ElemType t; if(x>y) { t=x; x=y; y=t; } for (i=0; i<L->length; i++) if (L->data[i]<x || L->data[i]>y ) //复制不在[x, y]之间的元素 { L->data[k]=L->data[i]; k++; } L->length=k;}//用main写测试代码int main(){ SqList *sq; ElemType a[10]= {5,8,7,0,2,4,9,6,7,3}; CreateList(sq, a, 10); printf("删除前 "); DispList(sq); delx2y(sq, 4, 7); printf("删除后 "); DispList(sq); return 0;}
运行结果:
2、将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
在这需要利用之前设计的算法库“list.h”
#include "list.h"#include <stdio.h>//移动结束后,奇数居左,偶数居右void move(SqList *&L){ int i=0,j=L->length-1; ElemType tmp; while (i<j) { while ((i<j) && (L->data[j]%2==0)) //从右往左,找到第一个奇数(偶数就忽略不管) j--; while ((i<j) && (L->data[i]%2==1)) //从左往右,找到第一个偶数(奇数就忽略不管) i++; if (i<j) //如果未到达“分界线”,将右边的奇数和左边的偶数交换 { tmp=L->data[i]; L->data[i]=L->data[j]; L->data[j]=tmp; } } //待循环上去后,继续查找,并在必要时交换}//用main写测试代码int main(){ SqList *sq; ElemType a[10]= {5,8,7,0,2,4,9,6,7,3}; CreateList(sq, a, 10); printf("操作前 "); DispList(sq); move(sq); printf("操作后 "); DispList(sq); return 0;}
运行结果:知识点总结:
利用前面建好的算法库,在程序头部直接加 #include<list.h>
学习心得:
算法库的使用对于工程来说很重要,能够大大的节省时间人力。
阅读全文
0 0
- 第3周【项目4
- 第4周项目3
- 第4周【项目3
- 第4周-项目4-(3)
- 第4周项目3(3)
- 第11周项目3(4)
- 第12周 项目3-(4)
- 第15周项目3-(4)
- 第4周 项目3-单链表应用
- 第4周项目3 单链表应用
- 第3周-项目4-换分币
- 第3周项目4 百钱百鸡
- 第3周项目4 换钱币
- 第3周项目4 年龄几何
- 第3周项目4 三色球
- 第3周项目4 委派任务
- 第3周项目4 谁是小偷
- 第3周-项目4-百钱买百鸡
- angular路由小结
- js的一些坑
- 在项目中使用Webpack
- 后台管理
- java泛型
- 第3周【项目4
- Android选择器之selector精讲
- OutputStreamWrite:字符流
- 【JavaEE系列——JPA】——JPA Entities
- HttpClient 教程(一)
- Python常用方法记录
- 第四周项目二 单链表算法库
- Java的字节流和字符流
- redis-事务