可以使用整数排序法, 内存太小无法堆排序.
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
unsigned int age[101];
int n,temp;
while (scanf("%d", &n) == 1 && n){
memset(age, 0, sizeof(age));
for (int i = 0; i < n; i++){
scanf("%d", &temp);
age[temp]++;
}
bool first = 1;
for (int i = 1; i < 101; i++){
for (int j = 0; j < age[i];j++)
{
if (!first) printf("");
else first = false;
printf("%d", i);
}
}
printf("\n");
}
}
优化输入输出也可以提高效率, 但是这个是最后考虑的优化要素.
函数名前 的inline 相当于c的宏定义, 降低大量函数引用消耗的时间.
使用cctype 中的 isdigit
#include <cstdio>
#include <cstring>
#include <cctype>
using namespace std;
inline int readint(){
char c = getchar();
while (!isdigit(c)) c = getchar();
unsigned int num = 0;
while (isdigit(c)){
num = num * 10 + c - '0';
c = getchar();
}
return num;
}
inline void writeint(unsigned int i){
char buf[10];
int p = 0;
while (i){
buf[p++] = i % 10;
i /= 10;
}
for (int j = p - 1; j >= 0; j++) putchar('0' + buf[j]);
}
int main(){
int n;
int age[101];
while (n = readint()){
memset(age, 0, sizeof(age));
for (int i = 0; i < n; i++){
age[readint()]++;
}
bool first = true;
for (int i = 1; i < 101; i++){
for (int j = 0; j < age[i]; j++){
if (!first) putchar(' ');
else first = false;
writeint(i);
}
}
putchar('\n');
}
}
分享到:
相关推荐
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
算法设计与分析 一PRESETATION 仅做参考,请勿copy冲查重塔峰 排序算法性能分析 选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的...
经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonhole sort 经典排序算法 - ...
中科院 cuda 作业 排序算法 sort
sort 排序算法大全sort 排序算法大全sort 排序算法大全sort 排序算法大全sort 排序算法大全sort 排序算法大全sort 排序算法大全
算法设计与分析-排序算法c++源代码 仅做参考,copy冲查重塔峰 选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 void Init_...
算法设计与分析-排序算法性能分析大礼包 包括题目要求pdf,报告文档,c++源代码,pre ppt 选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验...
这是一个很好的排序算法,以及找到某个数在数组中的具体位置。
最快的排序算法 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法,排序算法数据结构
算法设计与分析课程设计—内部排序 内含实验报告
数据结构课程设计(内部排序算法比较_C语言) 数据结构课程设计(内部排序算法比较_C语言)
归并排序(Merge sort)(台灣譯作:合併排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
FlashSort排序算法及实现 FlashSort排序算法及实现 FlashSort排序算法及实现 FlashSort排序算法及实现 FlashSort排序算法及实现
排序算法课程设计报告,其中包括冒泡排序,快速排序,等经典算法的介绍和应用
算法设计,给出归并排序的C++实现代码,并利用给随机数方式求运行时间
1、本演示程序对以下6种常用的内部排序算法进行实测比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 2、待排序表的表的元素的关键字为整数,表长不小于100;其中的数据要用伪随机数产生...
sort 排序算法实现_支持插值排序+选择排序+冒泡排序_sort
希尔排序,冒泡排序、快速排序递归排序,快速排序非递归排序,快速排序改进算法
Java常用高效8大排序算法与二分法查找,适合正在学习算法和准备学习算法的算法爱好者和研究使用算法的开发人员使用。
算法设计实验报告,包括:快速排序和归并排序两种算法各自的基本思想、时间复杂度分析,C++实现代码,两种算法运行时间的比较,运行截图,实验心得。