绝对值排序(2020)——笔记待完善

思考:这道题用的是插入排序的算法思想。

#include<stdio.h>
#include<cmath>
int main()
{
    int n;
    char d;
    int r[101];
    while (scanf_s("%d%c", &n, &d) != EOF)
    {
        if (n == 0)
            break;
        for (int i = 1; i <= n; i++)
        {
            int a;
            scanf_s("%d", &a);
            r[i] = a;
        }
        for (int i = 2; i <= n; i++)
        {
            r[0] = r[i];
            int j = i - 1;
            while (abs(r[0]) > abs(r[j]))
            {
                r[j + 1] = r[j];
                j = j - 1;
            }
            r[j + 1] = r[0];
        }
        for (int i = 1; i <= n; i++)
        {
            if (i!=n)
                printf("%d ", r[i]);
            else
                printf("%d\n", r[i]);

        }
    }
}
时间: 2024-12-15 17:19:39

绝对值排序(2020)——笔记待完善的相关文章

hdu 2020 绝对值排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020 题目大意:按照绝对值大小从大到小排序,注意输出两个数之间要用空格隔开,在这里引入一个冒泡排序,两个循环即可! 1 #include <stdio.h> 2 #include <math.h> 3 int main () 4 { 5 int n,a[100],i,j,t; 6 while (scanf("%d",&n),n) 7 { 8 for (i=0

hdu 2020 绝对值排序 (java)

问题: 注意输入方式,可以直接用数组来装. 绝对值排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 51480    Accepted Submission(s): 24867 Problem Description 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等.

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方

初探排序学习笔记

简单选择排序 思路:选出最小的元素,放在第一个位置,之后在剩下的元素中,选出最小的元素,放在第二个位置.........以此类推,直到完成排序. package h; public class MyA { static void selectOne(int[] a, int begin) { int p = begin; //假设修正法 for(int i=begin+1; i<a.length; i++){ if(a[i] < a[p]) p = i; //记录最小元素所在位置 } {int

【 OJ 】绝对值排序

绝对值排序 发布时间: 2017年11月12日 12:31   最后更新: 2017年11月12日 12:33   时间限制: 1000ms   内存限制: 128M 描述 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. 输入 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理. 输出 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开.每个测试实例占一行. 样例输入1

hdu 2018(母牛问题)2019(数列有序!)2020(绝对值排序 )2021(发工资)2022(海选女主角)

要发现它的规律,题n年牛的总数等于n-1年的母牛数加上第n年新增的母牛数,第n年只有n-3年的那些母牛才能产母牛,所以第n年的母牛数等于第n-1和n-3年的母牛数的和,即sum(n)=sum(n-1)+sum(n-3),可用递归来做 1 #include<cstdio> 2 #include<cmath> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 using

2020.绝对值排序

#include<stdio.h> int main(){          int n,a[100];          scanf("%d",&n);          for(int i=0;i<n;i++)          scanf("%d",a[i]);          for(int i=0;i<n;i++)          {          if(a[i]<0)a[i]=-a[i];         

HDOJ 2020 绝对值排序

#include<iostream> #include<cmath> #include<algorithm> #include<vector> using namespace std; bool cmp(int a, int b) { return abs(a) > abs(b); } int main() { int n; while (cin >> n && n != 0) { vector<int> v;

Unity学习笔记之四完善Prefab并添加First Person Controller

好久没学东西并用博客记录了,这个年过的很懒散,慢慢临近开学了,也要提前适应一下,写写东西,这样开学才能更好的进入状态呀-- 本次笔记中,我们将来雕琢一个更加完善的Prefab,并添加一个第一人称角色在场景中. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>.下载地址附在第二篇笔记中. 上一篇教程我们创建了一个Prefab,在最后我利用四个Prefab通多顶点捕捉建立一个简易的隧道.这只是为了示意Prefab的便捷性,下面我们先把这个隧道删除到只