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

问题 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;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Problem C: 顺序表基本运算(线性表)

问题 C: 顺序表基本运算&#xff08;线性表&#xff09; 时间限制: 1 Sec 内存限制: 128 MBDescription 编写一个程序&#xff0c;实现顺序表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、初…

Problem D: 链表的基本运算(线性表)

Problem D: 链表的基本运算&#xff08;线性表&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 18 Solved: 10Description 编写一个程序&#xff0c;实现链表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;主函数已给出&#…

Problem B: 结构体---职工信息结构体

Problem B: 结构体---职工信息结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 504 Solved: 306编写程序&#xff0c;定义一个存放职工信息的结构体类型&#xff0c;职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息&#xff0c;对工作年限超过30年的…

Problem C: 结构体---点坐标结构体

Problem C: 结构体---点坐标结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 663 Solved: 444[Submit][Status][Web Board]Description 定义一个表示点坐标的结构体&#xff0c;输入两个点的坐标&#xff0c;输出这两个点中点的坐标 Input 第一个点的坐标&#xff08…

Problem D: 编程题B-向量的数量积

Problem D: 编程题B-向量的数量积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 164 Solved: 148Description 已知两个非零向量a&#xff08;x1&#xff0c;y1&#xff09;&#xff0c;b&#xff08;x2&#xff0c;y2&#xff09;&#xff0c;则有abx1x2y1y2&#xff0c;…

Problem E: 高于均分的学生

Problem E: 高于均分的学生 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 45Description 输入n(<100)个学生的姓名、学号和成绩&#xff0c;将其中高于平均成绩的姓名、学号和成绩输出。 Input 第一行为学生人数 n 第二行到第n1行&#xff0c;每行一个学生…

Problem E: 建立链表(线性表)

Problem E: 建立链表(线性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 323 Solved: 207Description &#xff08;线性表&#xff09;设键盘输入n个英语单词&#xff0c;输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数&#xff0c;试编一程序&#xff0c…

Problem A: 判断操作是否合法(栈和队列)

Problem A: 判断操作是否合法&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 22Description 假设以I和O分别表示进栈和出栈操作&#xff0c;栈的初态和终态均为空&#xff0c;进栈和出栈的操作序列可表示为仅由I和O组成的序列…

Problem G: 函数---判断日期(年月日)是否合法

Problem G: 函数---判断日期&#xff08;年月日&#xff09;是否合法 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 566 Solved: 240Description 编写函数isValid_date&#xff0c;函数声明如下: int isValid_date(int year,int month,int day); //判断日期&#xff08;年…

Problem H: 今年第几天?

Problem H: 今年第几天&#xff1f; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310Description 定义一个函数&#xff0c;其参数为年、月、日的值&#xff0c;返回这一天为该年的第几天。要求在main函数中输入年月日&#xff0c;然后调用这个函数求值&…

Problem I: 函数---判断某年某月某日是这一年中的第几天

Problem I: 函数---判断某年某月某日是这一年中的第几天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 457 Solved: 194Description 在主程序(main)中输入某年某月某日&#xff0c;例如2012 9 18(年月日之间用空格隔开)&#xff0c; 调用函数dayth来得到某年某月某日是这…

Problem C: 括号匹配(栈和队列)

Problem C: 括号匹配&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 76 Solved: 18[Submit][Status][Web Board]Description 假设一个表达式中只允许包含三种括号&#xff1a;圆括号“(”和“)”&#xff0c;方括号“[”和“]”和花括号“…

Problem D: 栈的基本运算(栈和队列)

Problem D: 栈的基本运算&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 15[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序栈的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法…

Problem B: C语言习题 矩阵元素变换

Problem B: C语言习题 矩阵元素变换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 942 Solved: 558[Submit][Status][Web Board]Description 将一个nn(2<n<10,n为奇数)的矩阵中最大的元素放在中心&#xff0c;4个角分别放4个最小的元素&#xff08;按从左到右、从上…

Problem D: 删出多余的空格

Problem D: 删出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在给弟弟检查英语作业时时&#xff0c;发现每个英语句子单词之间的空格个数不等&#xff0c;请你编程帮他把句子中多余的空格去掉&am…

Problem D: 顺序串的基本运算

Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序串的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、建立串s"abcdefgh…

骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一个长方形方格中,用一个1 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n3时…

递归思想完成n皇后问题

已经很长时间不敲代码了&#xff0c;感觉自己越来与颓废&#xff0c;所以现在又想做回一名苦逼的程序员&#xff0c;开启自己的代码之路。 我是根据视频敲的&#xff0c;没有题目&#xff0c;先看个四皇后问题吧。 所谓4皇后问题就是求解如何在44的棋盘上无冲突的摆放4个皇后棋…

POJ1163 数字三角形

1.题目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB识别

VirtualBox识别USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虚拟机配置面板中打开USB设备选项&#xff0c;分别勾选上“启动USB控制器”“启用usb2.0控制器”选项&#xff0c;如果有错误去https://www.virtualbox.org/wiki/Downloads 下载相应版本的插件包&a…