实现一个排序,要求时间效率O(n)
数据大小是在一个范围内的,可以使用常量大小的辅助空间.不得超过O(n);
#include "stdafx.h"
#include <iostream>
#include<stack>
#include<exception>
using namespace std; void SortAges(int ages[],int length)
{
if(ages==NULL||length<=)
return;
const int oldestAge = ;
int timesOfAge[oldestAge+];
for(int i = ;i<=oldestAge;++i)
timesOfAge[i]=;
//统计出各个年龄段人数,timesOfAge用来统计每个年龄出现的次数.
for(int i = ;i<length;++i)
{
int age = ages[i];
if(age<||age>oldestAge)
throw new std::exception("age out of range.");
++timesOfAge[age];
}
int index = ;
//某个年龄出现了多少次,就在数组ages里设置几次该年龄.
for(int i = ;i<=oldestAge;++i)
{
for(int j = ;j<timesOfAge[i];++j)
{
ages[index]=i;
++index;
}
} }
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={,,,,,,,,,,};
SortAges(a,);
for(int i = ;i!=;++i)
cout<<a[i]<< " ";
return ;
}
实现一个排序,要求时间效率O(n)的更多相关文章
- 冒泡排序&&选择排序 以及时间效率对比
package com.test4; import java.util.*; //Calendar 显示时间 /** * @author qingfeng * 功能:冒泡排序 */ public cl ...
- 40 最小的K个数(时间效率)
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 测试用例: 功能测试(输入的数组中有相同的数字:输入的数组中 ...
- 看望朋友(家达)--->>对事情的专注及时间效率学习
本意是想去堕落街吃完饭就回寝室休息了,结果偶遇尹阳,便说是一同去走走.路上边走边聊,我便提议去十教楼顶,十教是全学校最高的教学楼,这也是刘智学长给我说的.在十教楼顶的那种感觉,特别想吹口琴,可惜没有带 ...
- javascript数据结构与算法--基本排序算法(冒泡、选择、排序)及效率比较
javascript数据结构与算法--基本排序算法(冒泡.选择.排序)及效率比较 一.数组测试平台. javascript数据结构与算法--基本排序(封装基本数组的操作),封装常规数组操作的函数,比如 ...
- 比较两种数组随机排序方法的效率 JavaScript版
//比较2中数组随机排序方法的效率 JavaScript版 //randon1思路 //当len=5时候,从0-5中随机3一个放入i=0, // 从0-3随机一个2放入i=2 // 从0-2随机一个1 ...
- 在一个N个整数数组里面,有多个奇数和偶数,设计一个排序算法,令所有的奇数都在左边。
//在一个N个整数数组里面,有多个奇数和偶数,设计一个排序算法,令所有的奇数都在左边. // 例如: 当输入a = {8,4,1,6,7,4,9,6,4}, // a = {1,7,9,8,4,6,4 ...
- python3通过Beautif和XPath分别爬取“小猪短租-北京”租房信息,并对比时间效率(附源代码)
爬虫思路分析: 1. 观察小猪短租(北京)的网页 首页:http://www.xiaozhu.com/?utm_source=baidu&utm_medium=cpc&utm_term ...
- 获取当前时间UTC时间的下一个15分钟时间点
ZonedDateTime zdt = ZonedDateTime.now(ZoneOffset.UTC); int now15Minute = zdt.getMinute() / P15MINUTE ...
- 编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
namespace test2 { class Program { /// <summary> /// 编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的 ...
随机推荐
- 【BZOJ2843】极地旅行社 离线+树链剖分+树状数组
[BZOJ2843]极地旅行社 Description 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务.当地最受欢迎的当然是帝企鹅了,这些 ...
- 【题解】CF24D Broken Robots(收敛性)
[题解]CF24D Broken Robots http://codeforces.com/problemset/problem/24/D 解1(不会写,口胡的) 获得一个比较显然的转移式子 \(dp ...
- CMMI过程改进反例
近期一直在看CMMI的资料,越看认为越有意思.今天看到过程改进的时候,突然想起来之前所在的公司发生的过程改进相关的事儿来. 公司通过CMMI3级认证之后.PMO部门经理(公司还有质量管理部门经理 ...
- 二维码图片流转base64
@RequestMapping(value = "/weChatImage",method = RequestMethod.GET)public Response weChatim ...
- Java for LeetCode 107 Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- 5.JavaScript优化及导航菜单背后的秘密
JavaScript优化及导航菜单背后的秘密 伍星 学习目标1.进一步了解前端优化 学习如何编写良好的 JavaScirpt2.通过导航的学习,了解JavaScirpt的应用 JavaScript在用 ...
- Kattis - cardhand Card Hand Sorting 【暴力枚举】
题意 给出 一个扑克牌的序列 求排成一个"有序"序列 最少的插入次数 有序是这样定义的 同一个花色的 必须放在一起 同一花色中的牌 必须是 升序 或者是 降序 然后 A 是最大的 ...
- leetcode 859. Buddy Strings
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...
- EASYARM-IMX283 烧写uboot和linux系统
新入手一台EASYARM-IMX283开发板(以下简称IMX823),价格比较便宜,配置也不错. 开发板默认安装了WINCE,我还是决定重新烧写uboot和linux内核. 开发板配套光盘里面有不少烧 ...
- oracle_sql的用法?
本机连接oracle 数据库?打开cmd ----> 不同的用户有不同的用户名密码 ----> sqlplus scott/tiger(安装oracle数据库预留的用户)---- 回车 - ...