对32位无符号整数进行排序
2012-12-28 09:07
197 查看
题目要求:
输入一个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
考核目的:主要考算法和回调函数
以下是要用于排序和对于每个数据降序的算法函数:其中排序算法用的是快速排序
输入一个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); }
相关文章推荐
- 两个16位有符号整数转换为32位有符号整数的方法
- n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk) 的得两分,总分是20分
- IP和32位无符号整数相互转换
- 2015百度面试题--对10亿个32位整数去重和排序
- 对N个整数进行排序(各类排序)
- 有一个数组,包含10个整数,编写代码对前5个数进行升序排序,后5个数进行降序排序。
- 计算机中带符号的整数为何采用二进制的补码进行存储
- 如何对n个整数数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 32位无符号整数中1的个数
- 用3位以内的随机整数填充长度为20的整型数组,然后使用冒泡排序法按升序进行排序,输出排序后的数组元素(每行输出10个元素)。
- 堆排序示例:对n个整数进行排序.
- 输入n个整数,编写函数实现以下操作,要求用指针实现: (1) 对n个数进行排序; (2) 将从指定位置的m个数逆序存放,例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把
- 输入n个整数,并且进行降序排序
- 计算机中带符号的整数为何采用二进制的补码进行存储?
- 计算机中带符号的整数为何采用二进制的补码进行存储?
- java编程之对10个整数进行排序(从命令窗输入数据)
- c# byte数组转换 8位有符号整数 16位有符号整数 32位有符号整数
- 初学C语言:使用指针变量的方式进行三个整数的排序
- 将一个字段中以符号分隔的多个数字进行排序显示
- java编程之对10个整数进行排序(从对话窗体输入数据)