问题 B: 调整表中元素顺序(线性表)

时间限制: 1 Sec  内存限制: 2 MB
提交: 28  解决: 11
[提交][状态][讨论版]

题目描述

若一个线性表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函数)

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define SizeMax 100000
using 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<n; i++)scanf("%d",&L->data[i]);L->length=n;
}void move(SqList *&L)
{int n=L->length,a[10000],m;for(int i=0,j=0,r=0;i<n;i++){if(L->data[i]<0){L->data[j]=L->data[i];j++;}else{a[r]=L->data[i];r++;}m=j;}for(int i=m,r=0;i<n;i++){L->data[i]=a[r];r++;}}
void Print(SqList *L)
{for(int i=0; i<L->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;
}

问题 B: 调整表中元素顺序(线性表)相关推荐

  1. 大话数据结构 01 :顺序线性表

    1.完整代码 #include "stdio.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0#defi ...

  2. Problem A: 删除区间内的元素(线性表)

    Problem A: 删除区间内的元素(线性表) Time Limit: 1 Sec  Memory Limit: 2 MB Submit: 75  Solved: 24 [Submit][Statu ...

  3. 用标准C语言初始化线性表,C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作...

    1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...

  4. 顺序线性表 ---- ArrayList 源码解析及实现原理分析

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7738888.html ------------------------------------ ...

  5. 链式线性表和顺序线性表

    顺序线性表 顺序表的存储结构通常用一维数组来描述,数组的下标与元素在线性表中的序号相对应. 在这里插入代码片 线性表的存储结构: typedef struct {int elem[MAX_SIZE]; ...

  6. c语言顺序线性表的实现

    结构体的定义 //顺序线性表的结构体 typedef struct List {ElemType * dataList; //数据地址int listLength; //数据表长度int listSi ...

  7. c语言visit_数据结构(c语言)——入门数据结构的世界:顺序线性表(一)

    前面说的话 提到数据结构,最出名的恐怕还是四大基本结构,分别是集合,线性结构,树形结构和图形结构. 本人只是一名普普通通的本科学生,学的东西比较基础,甚至有可能比较落伍,但作为所有国内高等学府相关专业 ...

  8. C语言实现数据结构顺序线性表

    大家好,我是胡阳阳 数据结构一直以来都是一门很难的学科 学数据结构时老师总讲的思想和伪代码 对于初学者来说很难写出对应的程序 下面我们来讲解如何才能自己写出顺序线性表的代码 首先顺序线性表是由数组来实 ...

  9. java中线性表删除元素和删除指定元素_线性表的插入和删除(Java版)

    1.线性表的定义: (1).线性表是一种可以在任意位置插入和删除数据元素操作.由n(n≥0)个相同类型数据元素a0, a1,-, an-1组成的线性结构.除了第一个元素没有前驱元素和最后一个元素没有后 ...

最新文章

  1. 词向量背后精妙的数学
  2. 《高可用MySQL》2 – 单机版MySQL主从配置
  3. Lync 2010迁移Lync 2013 PART6:迁移CMS
  4. tkinter 笔记 :主体框架窗口内容
  5. 企业dns 服务器的搭建
  6. 【Azure Show】|第九期 “我的计算机入门之路” 嘉宾秦婷婷汪宇杰文轩
  7. Python输出带颜色字体
  8. python面试 hashmap是什么_面试不慌,看完保证让你写HashMap跟玩一样
  9. mysql中select后接数字_MySQL SELECT用于从一组数字中排列一个数字
  10. 190520每日一句
  11. C语言线性表学生管理系统,c语言 学生信息管理系统(线性表版)
  12. 公众号H5运营如何激发用户的打开H5商城欲望?
  13. 如何做出优质的Scratch作品
  14. 计算机上标和下标的快捷键,【1人回答】Word文档中怎么输入上标下标,上标下标快捷键是什么?-3D溜溜网...
  15. 南佛罗里达大学计算机科学硕士,去南佛罗里达大学读硕士好吗
  16. ubuntu企业微信解决无法查看、发送图片
  17. java 浏览器设置字体大小_Sass可以在不使用REM的情况下访问浏览器的默认字体大小吗?...
  18. 安卓Android修改车机版系统的导航栏和状态栏高度
  19. jinja2.exceptions.TemplateNotFound 报错处理
  20. 轻量化SISR实验结果汇总

热门文章

  1. mysql 中 end like,MySQL 这三道必问面试题,你都会吗?
  2. linux系统之间无密传输,scp采用无密码在两台linux服务器之间传输数据(示例代码)...
  3. oracle并行parallel update两张表_Oracle与并行性 parallel
  4. sql left join用法_图解 SQL 中 JOIN 的各种用法
  5. 已达成计算机的连接数最大值无法再,已达到计算机的连接数最大值,无法再同此远程计算机连接...
  6. php定义数据表类,phpwind中的数据库操作类
  7. 2020.2idea怎么创建html项目_陈肆横项目日记:百度百科怎么创建自己的名字
  8. #控制台大学课堂点名问题_你对大学生活的5大误解!看完我想静静......
  9. win7无法连接打印机拒绝访问_“Windows无法连接打印机,操作失败,错误为0x000003e3”...
  10. Java 跨平台运行机理:Dos 命令在桌面新建文件夹,并在其中编译、运行一段 Java 程序