首页 > 其他分享 > 数组排序输出(函数模板)

数组排序输出(函数模板)

时间:2023-05-04 20:45:47浏览次数:33  
标签:sort case ty int 数组 排序 display 模板 size

一、问题描述:

对于输入的每一批数,按从小到大排序后输出。

一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。

输出将从小到大顺序输出数据。

函数接口定义:sort函数将接受size个数据,将它们从小到大排序后存在a指向的一段连续空间中。

template <class T>
void sort(T *a, int size);

  

裁判测试程序样例:

#include <iostream>
#include <string>
using namespace std;

/* 请在这里填写答案 */

template <class T>
void display(T* a, int size){
    for(int i=0; i<size-1; i++) cout<<a[i]<<' ';
    cout<<a[size-1]<<endl;
}
int main() {
     const int SIZE=10;
     int a[SIZE];
     char b[SIZE];
     double c[SIZE];
     string d[SIZE];
     int ty, size;
     cin>>ty;
     while(ty>0){
         cin>>size;
         switch(ty){
             case 1:sort(a,size); display(a,size); break;
             case 2:sort(b,size); display(b,size); break;
             case 3:sort(c,size); display(c,size); break;
             case 4:sort(d,size); display(d,size); break;
         }
         cin>>ty;
     }
      return 0;
}

  

二、代码实现:

 1 template <class T>
 2 void sort(T *a, int size)
 3 {
 4     for(int i=0;i<size;i++)
 5     {
 6         cin>>a[i];
 7     }
 8     for(int i=0;i<size-1;i++)
 9     {
10         for(int j=i+1;j<size;j++)
11         {
12             if(a[i]>a[j])
13             {
14                 T p;
15                 p=a[i];
16                 a[i]=a[j];
17                 a[j]=p;
18             }
19         }
20     }
21 }

 

标签:sort,case,ty,int,数组,排序,display,模板,size
From: https://www.cnblogs.com/tljx-cen/p/17372445.html

相关文章

  • 类模板
    实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的数量。从每行......
  • 模板集合(持续更新中)
    线段树//线段树namespaceSeg_tree{#definels(u<<1)#definers(u<<1|1)#definemid((l+r)>>1) typedeflonglongll; constintN=1e5+5; usingstd::max; usingstd::min; llval[N<<2],laz[N<<2],maxx[N......
  • js基础---数组操作(破坏性改变数组)
    数组元素的crudpush():像数组末尾添加一个或多个元素并返回数组的新长度pop():删除并返回数组的最后一个元素unshift():像数组的开头添加一个或多个元素,并返回数组的长度shift:删除并返回数组的第一个元素splice(1,3,“111”):删除添加插入替换数组中的元素.(删除包括第一个坐标元素后面的三......
  • springboot 分析源码欢迎页和图标-> thymeleaf模板引擎常用语法->扩展
    欢迎页: icon: 注意点: thymeleaf模板引擎1.使用thymeleaf模板引擎前要导入对应依赖包2.阅读源码:根据源码说明我们可以将html文件放置在templates目录下,然后通过controller进行跳转即可 controller类://在templates下的东西需要通过controller类来跳转,//需要导入......
  • 实例046 数组的下标界限
    以下是使用Java文本框控件实现Java数组的下标界限完整代码,包括详细注释:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassTestextendsJFrameimplementsActionListener{//定义窗口中需要用到的组件privateJTextFieldtextField......
  • 后缀数组学习笔记
    概念后缀数组,即对于一个串,它的每个后缀按字典序排序后得到的数组。有两个数组要求:\(SA_i\):排名为\(i\)的后缀的开头位置\(RK_i\):以\(i\)为开头的后缀的排名朴素sort排序一下优化倍增优化:我们进行\(\logn\)次排序,第\(k\)次取所有后缀的前\(2^k\)个字符进行......
  • 模板库
    火车头:#pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pragmaGCCoptimize("-fgcse")#pragmaGCCoptimize("-fgcse-lm")#pragmaGCCoptimize(&qu......
  • 实例 042 获取一维数组最小值
      你可以使用以下代码来获取一维数组中的最小值:int[]arr={5,3,9,1,7};intmin=arr[0];for(inti=1;i<arr.length;i++){if(arr[i]<min){min=arr[i];}}System.out.println("最小值为:"+min);  在上面的代码中,我们首先初始......
  • C语言函数指针数组,GCC编译问题
    使用C语言函数指针数组实现简单的计算器,代码如下#include<stdio.h>#include<stdlib.h>doubleadd(doublea,doubleb){return(a+b);};doublesub(doublea,doubleb){return(a-b);};doublemul(doublea,doubleb){return(a*b);};doubl......
  • C++用return{}来返回空的Vector数组
    本人在刷Leecode题目的时候发现以下代码classSolution{public:std::unordered_map<int,int>map;for(inti=0;i<nums.size();i++){//遍历当前元素,并在map中寻找是否有匹配的keyautoiter=map.find(target-nums[i]......