博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YTU 2987: 调整表中元素顺序(线性表)
阅读量:4704 次
发布时间:2019-06-10

本文共 1667 字,大约阅读时间需要 5 分钟。

2987: 调整表中元素顺序(线性表)

时间限制: 1 Sec  
内存限制: 2 MB
提交: 1  
解决: 1

题目描述

若一个线性表L采用顺序存储结构存储,其中所有元素都为整数。设计一个算法,将所有小于0的元素移到所有大于0的元素前面,要求算法的时间复杂度不超过O(nlog(n)),空间复杂度为O(1)。

  

顺序表的定义为:

typedef struct
{
    ElemType data[SizeMax];
    int length;
} SqList;
  
需编写的算法为:
void move(SqList *&L);
  

注意:只需提交你所编写的算法即可

输入

输入的数据有两行,第一行输入线性表的长度n,第二行依次输入n个元素。

输出

输出的数据占一行,为调整之后的线性表,每个元素中间用空格分隔。

样例输入

10-12 25 -19 21 -18 -11 5 -18 9 -22

样例输出

-12 -19 -18 -11 -18 -22 25 21 5 9

提示

1、请选择C++提交

2、注意调整后元素的顺序

3、只需提交调整顺序表元素的算法(move函数)

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

算法部分:
void move(SqList *&L){    for(int i=0,j=0; i
length; i++) if(L->data[i]<0) { for(int k=i; k>j; k--) swap(L->data[k],L->data[k-1]); j++; }}
完整代码:
#include 
#include
#include
#define SizeMax 100000using namespace std;typedef int ElemType;typedef struct{ ElemType data[SizeMax]; int length;} SqList;void CreateList(SqList *&L,ElemType n){ if(n>SizeMax)return; L=(SqList*)malloc(sizeof(SqList)); for(int i=0; i
data[i]); L->length=n;}void move(SqList *&L){ for(int i=0,j=0; i
length; i++) if(L->data[i]<0) { for(int k=i; k>j; k--) swap(L->data[k],L->data[k-1]); j++; }}void Print(SqList *L){ for(int i=0; i
length; i++) printf(i!=L->length-1?"%d ":"%d\n",L->data[i]);}int main(){ SqList *L; ElemType n; scanf("%d",&n); CreateList(L,n); move(L); Print(L); free(L); return 0;}
当初给这道题的测试数据加了100000个数。T^T
委屈

转载于:https://www.cnblogs.com/im0qianqian/p/5989397.html

你可能感兴趣的文章
asp.net mvc 3.0 远程验证步骤
查看>>
DAL BLL 模板(事务操作)(事务操作中再执行事务操作)
查看>>
内存检测
查看>>
Egret的一些性能优化
查看>>
express中间件的理解
查看>>
Java小案例——对字符串进行加密解密
查看>>
JavaScript规范
查看>>
java Map及Map.Entry详解
查看>>
Docker 启动报错 Error starting daemon: SELinux is not supported with the overlay2 ...alse)
查看>>
基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标1077视频监控平台...
查看>>
对于两个初始时设置为Sensor的刚体,不会触发preSolve和postSolve
查看>>
将图片url转换为base64与file对象
查看>>
SecureCRT常见配置
查看>>
前后端解决跨域问题
查看>>
重写toFixed()方法
查看>>
TensorFlow入门之MNIST最佳实践-深度学习
查看>>
UIActivityIndicatorView 的使用
查看>>
for循环:用turtle画一颗五角星
查看>>
CHM文件无法打开的解决方法
查看>>
poj-2752(拓展kmp)
查看>>