简单排序-病人排队

总时间限制:
1000ms
内存限制:
65536kB
描述

病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
1. 老年人(年龄 >= 60岁)比非老年人优先看病。
2.
老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
3. 非老年人按登记的先后顺序看病。

输入
第1行,输入一个小于100的正整数,表示病人的个数;
后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。
输出
按排好的看病顺序输出病人的ID,每行一个。
样例输入
5
021075 40
004003 15
010158 67
021033 75
102012 30
样例输出
021033
010158
021075
004003
102012

//结构体代码
#include<cstdio>
#include<iostream>
#include<cstring>
#include <algorithm>
using namespace std;
struct p//定义结构体
{
	char xh[15];
	int nl;
};
p a[110],b[110],c;

int main()
{
	int m,f(0),s(0),i,j;
	cin>>m;
	for(i=0;i<m;i++)
	{
		cin>>c.xh>>c.nl;
		if(c.nl>=60) a[f++]=c;
		else b[s++]=c;
	}
	p t;
	for(i=1;i<f;i++)
	{
		t=a[i];
		for(j=i-1;j>=0;j--)
			if(a[j].nl<t.nl) a[j+1]=a[j];
			else break;
		a[j+1]=t;
	}
	for(i=0;i<f;i++)
		cout<<a[i].xh<<endl;
	for(i=0;i<s;i++)
		cout<<b[i].xh<<endl;
		return 0;
}
时间: 2024-07-30 06:24:53

简单排序-病人排队的相关文章

08:病人排队

08:病人排队 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 1. 老年人(年龄 >= 60岁)比非老年人优先看病. 2. 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序. 3. 非老年人按登记的先后顺序看病. 输入 第1行,输入一个小于100的正整数,表示病人的个数:后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID

Openjudge 1.10 简单排序

1.10.6 奇偶排列 我的读入一行方式很奇怪,应该只能用于这种给定长度的数组了(急需补习...) #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using namespace std; int c[15]; bool cmp(int x,int y){ if(x%2==0&&y%2==0

简单排序

冒泡排序 选择排序 插入排序 时间复杂度 O(n^2) 冒泡排序è基本不用  过于简单比较次数(见下) 与 交换次数(平均为比较次数的一半) 均正比于N^2 选择排序è快于冒泡 交换时间级别大于比较时间级别选择该排序 比较次数(见下) 正比于N^2 交换次数N 插入排序 VS表插入排序 效率比较 插入排序>(略快于)选择排序>冒泡排序 插入排序 表插入排序 原理 简单排序之一 利用有序链表插入效率的比较为O(N)的特点 比较次数MAX (N^2-N)/2 N 比较次数AVG (N^2-N)/4

JavaScript 实现页面元素(ul-li)的简单排序

JavaScript 实现页面元素(ul-li)的简单排序 html页面: <input type="button" value="show" onclick="show()" /> <ul id="ul1"> <li>4</li> <li>3</li> <li>2</li> <li>1</li> </

排序算法之简单排序算法

一.前言 其实排序对于前端工程师来说没有后端那么重要,不过理解排序的原理还是比较有用的.例如有些应用数据比较少量的就不需要用后台来排序,如果用php后端脚本等排序会增加后台的开销.放在前端岂不是更好,当然我们有一个前端的排序神器sort.当然也做了很多得优化,不过用sort排序还需要注意一点,sort默认不传参数时候的排序是按照字母顺序对数组中的元素进行排序,其实就是按照字符编码的顺序进行排序.        今天主要复习一下简单得排序,分别为冒泡排序.插入排序.选择排序,冒泡目前是我认为最简单

Java数据结构和算法之数组与简单排序

一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 一维数组 一维数组(one‐dimensional array )实质上是相同类型变量列表.要创建一个数组,你必须首先定义数组变量所需的类型.通用的一维数组的声明格式是: type var‐name[ ]; 获得一个数组需要2步: 第一步,你必须定义变量所需的类型. 第二步,你必

UVA - 10905 - Children&#39;s Game (简单排序)

UVA - 10905 Children's Game Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description 4thIIUCInter-University Programming Contest, 2005 A Children's Game Input: standard input Output: standard output Problems

简单排序poj2388

#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h> using namespace std;int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int main(){ int n; int a[10001]; while(scanf("%d",&n)!=

Java中的几种排序算法:冒泡排序,插入排序,二分法排序,简单排序,快速排序

冒泡排序: int[] hehe={4,7,2,5,6,9,0}; for(int i=0;i<hehe.length;i++){ for(int j=i+1;j<hehe.length;j++){ if(hehe[i]>hehe[j]){ int temp=hehe[i]; hehe[i]=hehe[j]; hehe[j]=temp; } } } 插入排序 int[] a={13,7,8,9,10,1,2,32}; int i,j,t,h; for (i=1;i<a.length