【Java猫说】每日算法:#5-模板(泛型)方法之选择排序

news/2024/5/27 11:15:26/

Java每日算法

分析

模板函数,泛型参数传递排序

·针对各种参数,甚至自定义参数进行排序
·使用Comparable处理所有参数

编码

@Data
public class Student implements Comparable<Student> {private String name;private int score;public Student(String name, int score) {this.name = name;this.score = score;}/*** 定义Student的compareTo函数,如果分数相等,则按照名字的字母序排序* 如果分数不等,则分数高的靠前* @param o* @return*/@Overridepublic int compareTo(Student o) {if (this.score < o.score){return -1;}else if(this.score > o.score){return 1;}else{return this.name.compareTo(o.name);}}/*** 定义Student实例的打印输出方式* @return*/@Overridepublic String toString() {return "Student: " + this.name + " " + Integer.toString( this.score );}}

模板化选择排序

public class SelectionSort {private SelectionSort(){}public static void sort(Comparable[] arr){for (int i = 0;i<arr.length;i++){int minIndex = i;for (int j=i+1;j<arr.length;j++){if (arr[j].compareTo(arr[minIndex]) < 0){minIndex = j;}}swap(arr,i,minIndex);}}private static void swap(Object[] arr, int i, int j) {Object t = arr[i];arr[i] = arr[j];arr[j] = t;}public static void main(String[] args) {// 测试IntegerInteger[] a = {10,9,8,7,6,5,4,3,2,1};SelectionSort.sort(a);for( int i = 0 ; i < a.length ; i ++ ){System.out.print(a[i]);System.out.print(' ');}System.out.println();// 测试DoubleDouble[] b = {4.4, 3.3, 2.2, 1.1};SelectionSort.sort(b);for( int i = 0 ; i < b.length ; i ++ ){System.out.print(b[i]);System.out.print(' ');}System.out.println();// 测试StringString[] c = {"D", "C", "B", "A"};SelectionSort.sort(c);for( int i = 0 ; i < c.length ; i ++ ){System.out.print(c[i]);System.out.print(' ');}System.out.println();// 测试自定义的类 StudentStudent[] d = new Student[4];d[0] = new Student("D",90);d[1] = new Student("C",100);d[2] = new Student("B",95);d[3] = new Student("A",95);SelectionSort.sort(d);for( int i = 0 ; i < d.length ; i ++ )System.out.println(d[i]);}}

地址与代码获取

项目以传Github,定期更新算法内容
UncleCatMySelf/java_algorithm


http://www.ppmy.cn/news/733207.html

相关文章

【UML入门教程】——静态结构(下):类图

【类图——理论基础篇】 【功能】 描述系统的静态部分。不仅定义系统中的类&#xff0c;表示类之间的联系&#xff08;关联、依赖、泛化&#xff0c;实现&#xff09;&#xff0c;也包括类的内部结构&#xff08;类的书写和操作&#xff09;。 【包含元素】 类、关系。 1.什么是…

mysql:插入、更新与删除数据

本章将使用样例表person&#xff0c;创建语句如下&#xff1a; CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name CHAR(40) NOT NULL DEFAULT , age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id) ); 向表中所有字段插入值的…

运动员类

声明一个运动员类Athlete&#xff0c;类属性&#xff1a;姓名&#xff0c;性别&#xff0c;个人得分&#xff0c;团队得分&#xff08;使用静态&#xff09;&#xff0c;无参构造方法&#xff0c;带参构造方法&#xff0c;一个得分方法&#xff08;个人得分自加一&#xff0c;团…

MySQL 中 You can‘t specify target table ‘表名‘ for update in FROM clause错误解决办法

这里写自定义目录标题 问题解释&#xff1a;不能在更新或删除的sql里嵌套子查询 错误sql: delete from ent_role_userwhere (user_code ,role_code, tenant_code )in (select user_code ,role_code,tenant_codefrom ent_role_user where user_code #{userName}and tenant_c…

2018年安徽省大数据比赛MapReduce题目解答第二题

num.txt在此博客中&#xff1a;https://blog.csdn.net/qq_41479464/article/details/101922339 使用MR的处理方式,去除num.txt中以2开头的数字,并且统计每个数字出现的次数将结果保存为num2.txt&#xff08;10分&#xff09; 主函数&#xff1a; import java.io.IOException;…

实验三、UML静态建模之类的分析与设计

实验目的 通过UML建模过程掌握类的分析与设计方法。 实验环境 PowerDesigner 实验任务 针对“迷你图书管理系统”的用例图(图1)&#xff0c;开展分析&#xff0c;完成类建模。 图1&#xff1a;迷你图书管理系统用例图 实验步骤 分析实验任务内容&#xff0c;并利用UML完…

500错误 - 在[***Bean]类型bean中找不到任何有关属性[***]的信息

报错&#xff1a; 我在写JavaWeb的实验的时候发现以下JSP文件传入Bean的时候Tomcat报找不到错误&#xff1a; <% page contentType"text/html;charsetUTF-8" language"java" %> <jsp:useBean id"student" class"com.example.boo…

UML—静态图(类图

1、概念&#xff1a;用于定义系统中的类&#xff0c;包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。 2、组成&#xff1a;类、接口、 协作、依赖关系、泛化关系、实现关系以及关联关系。 1&#xff09;类&#xff1a;类是面向对象系统组织结构的核心…

mysql中修改表的命令_mysql常用修改表的命令

先創建一個表,創建語句如下: create table member( id int(3), name varchar(8), pass varchar(25) ); 1.向表member中增加一個新列email,mysql語句如下: alter table member add email varchar(50) not null; describe member; ---------------------------------------------…

STM32——STLink的使用

文章目录 STLink的使用一、STLink下载与安装1. STLink的下载2. STLink的安装 二、STLink的配置 STLink的使用 首先第一步&#xff0c;连接线的VCC和GND别接反了 本文粗略下载安装&#xff0c;详细描述配置 一、STLink下载与安装 1. STLink的下载 到官网https://www.st.com/…

Spark计算引擎介绍

1. Spark是什么 Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。 Spark是加州大学伯克利分校的AMP实验室&#xff08;Algorithms, Machines and People Lab&#xff09;开源的类Hadoop MapReduce的通用并行框架&#xff0c;拥有Hadoop MapReduce所具有的优点&…

FLUTTER

flutter --version Either pwsh.exe or PowerShell.exe must be in your PATH.## 标题 一、输入 flutter --version &#xff08;upgrade &#xff09; 报错&#xff1a; PowerShell executable not found 方法&#xff1a; 在环境变量里面 ----> 用户变量里面—>pat…

Flutter学习笔记(四)函数

常见的函数格式 返回类型 方法名称&#xff08;参数1&#xff0c;参数2&#xff0c;......&#xff09;{方法体return 返回值&#xff1b; } //常见的函数 //[] 内的为可选参数 , sex "boy" 为设置参数默认值 String getPersionInfo(String name, [int age, Strin…

Flutter 函数

1.可选参数1.1.位置可选参数 []void printInfo1(String name, [int? score, double? height]) {}1.2.命名可选参数 {}void printInfo2(String name, {int? score, double? height}) {}可选参数默认值void printInfo3(String name, {int score 1, double height 2.0}) {}2…

flutter初识

代码格式化&#xff1a; Android Studio 和 IntelliJ IDEA: 右键单击Dart代码&#xff0c;然后选择 Reformat Code with dartfm Terminal: 运行 flutter format <filename> 添加依赖包 flutter pub get

flutter 开发 (一)

demo效果&#xff1a; flutter 学习参考&#xff1a;https://space.bilibili.com/64169458/channel/detail?cid131083 flutter 链接模拟器 在安装目录bin目录下 执行 shell &#xff1a; adb connect 127.0.0.1:port host 可以在模拟器配置中查看 如逍遥模拟器的配置目录&…

Flutter 开发

Flutter 目录 一、背景 二、Dart 三、Flutter 四、开发 - 安装配置 - 结构和导包 - Widget 介绍 分享个返利程序&#xff0c;可以赚点零花钱。

Flutter学习笔记 -- Hello Flutter

1. Flutter的优势 跨平台性高帧率流畅UI热重载 … 2.Flutter的架构 (1) Foundation层与Animation、Painting、Gestures层, 这两层提供动画、绘制以及手势操作。 (2) Rendering层负责构建UI树。 (3) Widgets层与Material、Cupertino层, 其中Widgets层是Flutter提供的基础组件…

【Flutter】Flutter 入门

Beautiful native apps in record time. 一、重要网址&#xff1a; Flutter 中文网 Dart 起步 Flutter 布局 Flutter 教程 二、入门: 在macOS上搭建Flutter开发环境 2.1 配置镜像 在用户环境变量中添加如下变量&#xff1a; ## Flutter官方临时镜像 export PUB_HOSTED…

Flutter 初探

剖析官方Demo 当我们安装好Fultter后&#xff0c;我们可以看见main.dart预置了一段代码&#xff0c;即官方的一个简单Demo&#xff0c;功能即一个简单的计数器&#xff0c;点击右下角的""&#xff0c;对应屏幕的数字也会增加&#xff0c;显示效果&#xff1a; 以下…