zoukankan      html  css  js  c++  java
  • P5715 题解

    这是洛谷分支结构题单的一题,题面自己去洛谷搜题号吧。
    这道题用到了排序算法,由于题目已经限制了abc的数据量大小,最大只到三位数而已,所以就没有必要使用快排堆排这种比较复杂的排序算法了,我们直接使用最简单的冒泡排序。

    冒泡排序(C++):

    #include <stdio.h>
    
    int sort(int* nums, int quantity)
    {
        for (int i = 0; i < quantity-1; i++) {
            // 遍历每一对数
            for (int j = 0; j < quantity-1-i; j++) {
                // 如果前一个数大于后一个数,则互相交换位置
                if(nums[j] > nums[j+1]) {
                    // 三变量法交换变量值
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
    
        return 0;
    }
    

    记得后面要加上return 0;因为没有返回值的话洛谷评测机不会继续运行,会爆TLE(我第一次提交的时候就忘记写返回值了qvq)

    全部代码如下(C):

    /*
     Author: Kozumi
     Github: @Xuyang1638
     Blog: http://www.cnblogs.com/kozumi/
    */
    #include <stdio.h>
    
    int sort(int* nums, int quantity)
    {
        for (int i = 0; i < quantity-1; i++) {
            // 遍历每一对数
            for (int j = 0; j < quantity-1-i; j++) {
                // 如果前一个数大于后一个数,则互相交换位置
                if(nums[j] > nums[j+1]) {
                    // 三变量法交换变量值
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
    
        return 0;
    }
    
    int main(void)
    {
        // 获取输入
        int num[3];
        // 其实可以用循环,但是懒得写了,直接copy吧
        scanf("%d", &num[0]);
        scanf("%d", &num[1]);
        scanf("%d", &num[2]);
        sort(num, 3);
        printf("%d %d %d
    ", num[0], num[1], num[2]);
    
        // 别忘了返回值
        return 0;
    }
    
  • 相关阅读:
    java类研究(String)
    webservices
    LoadRunner(软件性能测试工具)
    java线程
    lucene solr
    java IO
    实现一个可变长数组
    [北大程序设计与算法]--虚函数与多态的实例
    A1155 Heap Paths [堆的dfs]
    A1154 Vertex Coloring
  • 原文地址:https://www.cnblogs.com/kozumi/p/12863023.html
Copyright © 2011-2022 走看看