绝对值排序
2015-01-18 14:39
155 查看
绝对值排序
Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
Sample Output
Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
3 3 -4 2 4 0 1 2 -3 0
Sample Output
-4 3 2 -3 2 1 0
#include<iostream> #include<cmath> using namespace std; int adjust(int s[], int l, int r) { int i = l, j = r; int x = s[l]; while(i < j){ while(i < j && fabs(s[j]) >= fabs(x) ) j--; if(i < j) { s[i] = s[j]; i++; } while(i < j && fabs(s[i]) < fabs(x) ) i++; if(i < j){ s[j] = s[i]; j--; } } s[i] = x; return i; } void qsort(int s[], int l, int r) { if(l < r){ int i = adjust(s, l, r); qsort(s, l, i-1); qsort(s, i+1, r); } } int main(){ int n; while(cin>>n && n!=0){ int s[100]; for(int i=0; i<n; i++) cin>>s[i]; qsort(s, 0, n-1); for(int i=n-1; i>=0; i--) i==n-1? cout<<s[i] : cout<<" "<<s[i]; cout<<endl; } return 0; }
相关文章推荐
- hduoj 2020绝对值排序
- 2020 绝对值排序
- 绝对值排序
- MYSQL之ABS取绝对值的排序应用
- (HDOJ 2020)绝对值排序
- (解题报告)HDU2020---绝对值排序
- hdoj 2020 (java)绝对值排序(Math.abs()函数应用以及数组冒泡排序)
- HDU 2020 绝对值排序
- 【绝对值排序】 (C++描述)(利用两个库函数——abs()求绝对值 和 sort()快排)
- HDU2020 绝对值排序
- HDU 2020 绝对值排序
- 绝对值排序(堆排序+基数排序)
- hdu2020&杭电oj_2020(绝对值排序)
- HDU2020_绝对值排序
- 杭电oj 2020 绝对值排序
- Hdoj 2020 绝对值排序
- 5-16: 输入10个数,要求编写一个排序函数,能够实现按绝对值从大到小排序。在主函数中输入10个数,输出排序后的10个数
- 绝对值排序
- HDOJ2020 ( 绝对值排序 ) 【水题】
- hdu 2020 绝对值排序