对32位无符号整数进行排序
来源:互联网 发布:关于淘宝的图片 编辑:程序博客网 时间:2024/05/09 23:10
题目要求:
输入一个32位无符号整数,对每一个正整数十进制表示的每位数字按照降序对各位数字进行排序得到一个新数。并对调整后的该组正整数按照升序排列后输出。按照以下流程完成题目。
流程:
1. 输入无符号整数个数
2.逐个输入相应的无符号整数(32位无符号整数)
3.对输入的数据按照十进制每位的大小进行降序排列,并调整为新数据。如:243调整为432
4.对调整后的数据进行升序排序
5.输出调整后并排序后的数组
例如:input:6
123 调整为(321)
256调整为(652)
442调整为(442)
303调整为303
789调整为987
321调整为321
Output:321 321 330 442 652 987
考核目的:主要考算法和回调函数
以下是要用于排序和对于每个数据降序的算法函数:其中排序算法用的是快速排序
void sort( unsigned long array[],int left,int right ){int dp;if (left<right) { dp=partition(array,left,right); sort(array,left,dp-1); sort(array,dp+1,right); }}int partition( unsigned long array[],int left,int right ){int lo,hi,pivot,t;pivot=array[left];lo=left-1;hi=right+1;while(lo+1!=hi) { if(array[lo+1]<=pivot) lo++; else if(array[hi-1]>pivot) hi--; else { t=array[lo+1]; array[++lo]=array[hi-1]; array[--hi]=t; }}array[left]=array[lo];array[lo]=pivot;return lo;}
//降序函数
unsigned long int selfsort(unsigned long data,int len ){if(len <= 1){return data;}unsigned long array[10];for (int i=0;i<len;i++){array[i]=data%10;data=(data-array[i])/10;}sort(array,0,len);unsigned long int sum=0;for (int j=len-1;j>=0;j--){sum=sum*10+array[j];}return sum;////itoa();//char t = *str;//*str = *(str + len - 1);//*(str + len - 1) = t;//return (strrev(str + 1,len - 2) - 1);}
- 对32位无符号整数进行排序
- 对32位的无符号int的位进行操作的一些相关函数
- 翻转无符号整数的比特位
- 无符号256位整数运算
- 64位有符号与无符号类型的整数
- 计算一个 32 位无符号整数有多少个位为 1
- 求一个32位无符号整数右边"0"的个数
- 快速求一个32位无符号整数二进制中为1的个数
- 快速求一个32位无符号整数二进制中为1的个数
- 求32位无符号整数中比特为1的二进制位数
- 计算一个 32 位无符号整数有多少个位为 1
- Hailstone 在32位无符号整数中最大的跳跃次数
- 判断32位无符号整数二进制中1的个数
- 在一个无符号整数中翻转位的顺序
- 将一个无符号整数的bit位逆序
- 统计无符号整数比特位为1的数量
- 按位反转无符号整数问题bitoperate函数(转)
- 使用移位操作符实现无符号整数位反转
- sqlite和sqlce性能对比
- WINIO内核模拟按键
- hdu 2101
- 来自客户端名 a 的远程会话超出了所允许的失败登录最大次数。强行终止了会话
- NSNotificationCenter
- 对32位无符号整数进行排序
- 安卓Adapter 与AdapterView笔记
- Three20研究院之搭建ASI与JSON环境制作简单的登录界面(七)
- 2012-12-28 所思
- 什么是整洁的代码(Clean Code)?
- mysql计划任务
- 中断触发流程
- Three20研究院之解决真机IOS6在Xcode4.5下无法编译与IOS设备自动旋转问题(九)
- 信号集操作函数