绝对值排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 152152 Accepted Submission(s): 71744

Problem 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

Author
lcy

Source
C语言程序设计练习(三)

问题链接:HDU2020 绝对值排序
问题简述:(略)
问题分析
  按Markdown格式重写了题解,旧版题解参见参考链接。
  绝对值排序与一般排序并没有太大差异,只需要在进行比较时使用绝对值比较即可。另外本题要求是降序排序,一般排序程序是升序排序,只需要将一般排序程序中的“>”改为“<”(或“<”改为“>”)即可。
  解法一:冒泡排序
  写一个自己的变形的冒泡排序算法程序,封装到函数。调用该冒泡函数处理一下数据再输出结果。也可以写其他排序算法的程序来解决这个问题。
  解法二:STL排序算法
  使用C++的STL排序算法来解,按套路编程就可以了。
程序说明:(略)
参考链接
HDU2020 绝对值排序【入门】
题记:(略)

AC的C语言程序(解法一:冒泡排序)如下:

/* HDU2020 绝对值排序 */#include <stdio.h>
#include <stdlib.h>/* 冒泡排序:绝对值排序,从大到小 */
void bubblesort1(int a[], int n)
{int i, j;for (i = n - 1; i > 0; i--)for (j = 1; j <= i; j++)if (abs(a[j-1]) < abs(a[j])) {int temp = a[j - 1]; /* 交换两个相邻的数 */a[j - 1] = a[j];a[j] = temp;}
}#define N 100
int a[N];int main(void)
{int n, i;while (scanf("%d", &n) != EOF && n != 0) {/* 读入n个数据 */for (i = 0; i < n; i++) scanf("%d", &a[i]);/* 排序 */bubblesort1(a, n);/* 输出结果 */for (i = 0; i < n; i++) {if (i != 0) printf(" ");printf("%d", a[i]);}printf("\n");}return 0;
}

AC的C++语言程序(解法二:STL排序算法)如下:

/* HDU2020 绝对值排序 */#include <bits/stdc++.h>using namespace std;const int N = 100;
int a[N];bool cmp(int a, int b)
{return abs(a) > abs(b);
}int main()
{int n;while (scanf("%d", &n) != EOF && n != 0) {for (int i = 0; i < n; i++) scanf("%d", &a[i]);sort(a, a + n, cmp);/* 输出结果 */for (int i = 0; i < n; i++) {if (i != 0) printf(" ");printf("%d", a[i]);}printf("\n");}return 0;
}

HDU2020 绝对值排序【排序】相关推荐

  1. HDU2020 绝对值排序【入门】

    绝对值排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  2. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  3. 按键精灵安卓版去除重复数组然后排序排序

    //可用于对一组坐标进行排序记录的是X坐标,后面跟随的是FindPic的图片对应值 ,已经验证 Dim str="228,1|406,1|274,0|326,0|352,3|249,5|48 ...

  4. HDU2020 绝对值排序

    绝对值排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. 编程算法 - 将排序数组按绝对值大小排序 代码(java)

    一个含有多个元素的数组,有多种排序方式.它可以升序排列,可以降序排列,也可以像我们以前章节说过的,以波浪形方式排序,现在我们要看到的一种是绝对值排序.对于数组A,绝对值排序满足以下条件:|A[i]| ...

  6. leetcode 1818 绝对值,排序,二分法,最大值

    1818. 绝对差值和 难度中等130收藏分享切换为英文接收动态反馈 给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n . 数组 nums1 和 nums2 的 绝对差值和 定义为 ...

  7. 8)排序②排序算法之选择排序[1]直接选择排序

    1 #include<iostream> 2 using namespace std; 3 4 //*******直接选择排序********* 5 int select_sort(int ...

  8. 8)排序④排序算法之归并排序

    1 #include "iostream" 2 #include "vector" 3 #include "time.h" 4 #inclu ...

  9. python 序列排序 排序后返回相应的索引

    https://blog.csdn.net/longwei92/article/details/83098289 https://blog.csdn.net/u013731339/article/de ...

最新文章

  1. 2019年最新10份开源Java精选资料
  2. 2020,PyTorch真的赶上TensorFlow了吗?
  3. 《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套
  4. tomcat基础架构剖析
  5. Git 源码禁止使用 C 标准库中容易被错用的函数
  6. 宏定义Define的一些用法
  7. 【解决】Oracle服务器ip地址被占用
  8. 如何取消重要地点加密_西门子S7-300/400PLC编程之软件加密
  9. Discuz! X2.5 添加风格模板
  10. 【个人笔记】OpenCV4 C++ 快速入门 26课
  11. 一篇博客搞定Django基础
  12. Comware V7使用用户名密码方式登录设备典型配置
  13. swot分析法案例_型男收割机之SWOT分析法——大龄剩女脱单攻略
  14. 温敏壳聚糖水凝胶细胞因子复合支架/季铵盐壳聚糖水凝胶三维支架复合GNDF载间充质干细胞的制备
  15. 程序员鄙视链, 所有工程师都鄙视php工程师, 为什么
  16. Spring Data JPA + QueryDSL
  17. 修改android默认锁屏方式
  18. 论文笔记| The Emergence, Advancement and Future of Textual Answer Triggering
  19. 定义一个点(point)类表示二维空间的点(x,y)
  20. RTSP,Java实现简单的RTSP报文交换

热门文章

  1. 以太网抓包数据报头长度
  2. android开发那些事儿(一)
  3. 关于AJAX的安全性
  4. AS3连接MYSQL数据库
  5. Adobe AIR * 设置移动应用程序属性
  6. 高级着色语言HLSL入门(1)
  7. 网络游戏中的数据包设计和定义(初论)
  8. iScroll的相关使用
  9. db_mysql.so_MySQL登陆时提示找不到到libmysqlclient.so.15
  10. 浏览器 html 看层级,浏览器视图层级中的“根”:html和body的属性研究