基数排序(10^5 以内的数字),有空思考下 10^17 (整数越界的情况)
来源:互联网 发布:中国网络歌曲 编辑:程序博客网 时间:2024/06/05 11:00
给定两个数 n,m
n 代表 1-n,n个数字进行基数排序
m代表 输出第m个数字
如
输入 11 4 (1,10,11,2,3,4,5,6,7,8,9)
输出 2
思路 定义一个数组 s[9][100000]
因为 按序(从1-n)来添加,已经是默认的排序
#include<iostream>//#include<vector>#include <stdlib.h>//#include<algorithm>using namespace std;const int N=1000;/*struct Node{int v;Node *next;}s[N];*/int s[9][N]={0};void main(){ int cc[9]={0}; int n,m; cin>>n>>m; int i,j,k; for( i=1;i<=n;i++) { //char str1[20]; char *str1 = new char[17]; itoa(i,str1,10); // cout<<"str:"<<str1<<endl;//cout<<"k:"<<k<<endl;//for(j=0;j<strlen(str1);j++)//{k=str1[0]-'0';int kk=cc[k-1]++;//cout<<"str:"<<str1<<" "<<kk<<endl;s[k-1][kk]=i;//}delete str1; } int c=0; bool t=true; for (i=0;i<9;i++){if(t==false)break;for(j=0;j<cc[i];j++) { if(s[i][j]!=0) {c++; if(c==m) {t=false;break;}}else break; //cout<<s[i][j]<<" "; }// cout<<endl; } cout<<s[i-1][j]<<endl; cout<<"\n排序后的数列:"; for (i=0;i<9;i++){//if(t==false)break;for(j=0;j<cc[i];j++) { //if(s[i][j]!=0) {c++; if(c==m) {t=false;break;}}//else break; cout<<s[i][j]<<" "; } }cout<<endl<<endl; system("pause");}
0 0
- 基数排序(10^5 以内的数字),有空思考下 10^17 (整数越界的情况)
- 自动出题程序(10以内的数字的四则运算)
- 50以内整除3切含有数字5的整数
- 10^12以内整数的因子个数
- 遇到的int型数字越界的情况
- 产生长度为10以内整数的随机字符串(java)
- 数组越界的深入思考
- 数字字符串的基数排序
- 产生 N 个10以内的随机整数
- 4个10以内的数字,通过四则运算得到24
- sql语句中某个字段有值,也有空的情况下做条件
- 10000以内的回文数字
- C# 数组越界来思考数组的空间分配(交错(非矩形)数组)
- window下快速发现内存越界的工具(gflags)
- 输入一个整数输出位数(整数限10位以内)
- 在防止溢出的情况下求两个整数的平均数。(向下取整)
- 5-18 整数152的各位数字 (10分)
- 非负整数的O(n)基数排序
- 织梦pc端与手机端统一后台的解决方案
- Nginx+Lua
- 哈弗曼树
- Python---石头剪子布
- size_t与size_type辨析
- 基数排序(10^5 以内的数字),有空思考下 10^17 (整数越界的情况)
- Java中键盘两种输入
- 51nod oj 1107 斜率小于0的连线数量 【类逆序数】
- 三级联动
- 数组作为函数的参数
- php更新数据库的数据
- Android Studio 中Project栏的各项大体作用.
- 工厂模式
- FHS