东莞网站/新闻最近新闻10条
- ☀️博客主页:CSDN博客主页
- 💨本文由 萌萌的小木屋 原创,首发于 CSDN💢
- 🔥学习专栏推荐:面试汇总
- ❗️游戏框架专栏推荐:游戏实用框架专栏
- ⛅️点赞 👍 收藏 ⭐留言 📝,如有错误请指正
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
Unity 小科普
老规矩,先介绍一下Unity的科普小知识:
- Unity 是行业领先的实时3D开发平台。
- 包括游戏开发,电影,AR/VR,虚拟现实在内的所有创作者,可以将梦想照进现实。
- Unity提供了一套完整完善的软件解决方案,可用于创作,运营和模拟任何2D和3D的内容,进本全平台支持。
- 实际上Unity就是一个游戏引擎,大名鼎鼎的原神就是用它制作的。
MGameFrame:慢慢积累的属于自己的框架
目的:自己工作期间凭当前水准自己写的代码框架,持续更新中,方便以后自己使用,现在开源,需要自取
需求:工程中,经常会使用到排序函数,但是每次去搜索,可能最常见的就是冒泡排序,现自己总结了所有的排序,方便自己在工程中快速的使用
十大排序
冒泡,插入,归并,桶,基数,二叉树,选择,希尔,堆,快速
参考链接
参考学习
注意事项
可以直接复制源码,也可以从我的GitCode中自取
源码
using System;
using System.Collections.Generic;
public class SortTool
{//整体参考:https://blog.csdn.net/weixin_43199474/article/details/93067441?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167782546316800215039843%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167782546316800215039843&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-93067441-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E5%8F%8A%E5%85%B6%E5%A4%8D%E6%9D%82%E5%BA%A6&spm=1018.2226.3001.4187#region 冒泡排序/// <summary>/// 冒泡排序(优化版本)/// 时间复杂度:最差:O(n^2),最好O(n)/// 空间复杂度:O(1)/// https://blog.csdn.net/qq_48718409/article/details/120866840?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167782824716800222841549%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167782824716800222841549&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-120866840-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F%E5%AE%9E%E7%8E%B0&spm=1018.2226.3001.4187/// </summary>/// <param name="list"></param>public static void BubbleSort(List<int> list){bool flag = false;for (int i = 0; i < list.Count - 1; i++){flag = false;for (int j = 0; j < list.Count - 1 - i; j++){if (list[j] > list[j + 1]){int temp = list[j];list[j] = list[j + 1];list[j + 1] = list[j];flag = true;}}if (flag == false){break;}}}#endregion#region 插入排序/// <summary>/// 插入排序/// 时间复杂度:最差:O(n^2),最好O(n)/// 空间复杂度:O(1)/// https://blog.csdn.net/qq_48718409/article/details/120866840?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167782824716800222841549%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167782824716800222841549&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-120866840-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F%E5%AE%9E%E7%8E%B0&spm=1018.2226.3001.4187/// </summary>/// <param name="list"></param>public static void InsertSort(List<int> list){for (int i = 1; i < list.Count; i++){ //控制循环轮数int temp = list[i]; //定义待交换元素int j; //定义待插入的位置for (j = i; j > 0 && temp < list[j - 1]; j--){list[j] = list[j - 1];}list[j] = temp;}}#endregion #region 归并排序/// <summary>/// 归并排序/// 时间复杂度:O(nlog(n))/// 空间复杂度:O(n)</summary>/// https://www.cnblogs.com/chengxiao/p/6194356.html/// <param name="list"></param>public static void MergerSort(List<int> list){int[] temp = new int[list.Count];//在排序前,先建好一个长度等于原数组长度的临时数组,避免递归中频繁开辟空间sort(list, 0, list.Count - 1, temp);}private static void sort(List<int> list, int left, int right, int[] temp){if (left < right){int mid = (left + right) / 2;sort(list, left, mid, temp);//左边归并排序,使得左子序列有序sort(list, mid + 1, right, temp);//右边归并排序,使得右子序列有序merge(list, left, mid, right, temp);//将两个有序子数组合并操作}}private static void merge(List<int> list, int left, int mid, int right, int[] temp){int i = left;//左序列指针int j = mid + 1;//右序列指针int t = 0;//临时数组指针while (i <= mid && j <= right){if (list[i] <= list[j]){temp[t++] = list[i++];}else{temp[t++] = list[j++];}}while (i <= mid){//将左边剩余元素填充进temp中temp[t++] = list[i++];}while (j <= right){//将右序列剩余元素填充进temp中temp[t++] = list[j++];}t = 0;//将temp中的元素全部拷贝到原数组中while (left <= right){list[left++] = temp[t++];}}#endregion#region 桶排序/// <summary>/// 归并排序/// 时间复杂度:O(N+M),近似O(N)/// 空间复杂度:O(N+M)/// https://www.cnblogs.com/skywang12345/p/3602737.html/// </summary>/// <param name="list"></param>public static void BucketSort(List<int> list, int maxVal){int[] buckets;if (list == null || maxVal < 1)return;// 创建一个容量为max的数组buckets,并且将buckets中的所有数据都初始化为0。buckets = new int[maxVal];// 1. 计数for (int i = 0; i < list.Count; i++)buckets[list[i]]++;// 2. 排序for (int i = 0, j = 0; i < maxVal; i++){while ((buckets[i]--) > 0){list[j++] = i;}}buckets = null;}#endregion#region 基数排序/// <summary>/// 基数排序/// 时间复杂度:O( k*n ) ;其中k为常数,n为元素个数;/// 空间复杂度:(10 × length)= O (length)/// https://www.cnblogs.com/skywang12345/p/3603669.html/// </summary>/// <param name="list"></param>public static void RadixSort(List<int> list){int exp; // 指数。当对数组按各位进行排序时,exp=1;按十位进行排序时,exp=10;...int max = getMax(list); // 数组a中的最大值// 从个位开始,对数组a按"指数"进行排序for (exp = 1; max / exp > 0; exp *= 10)countSort(list, exp);}/// <summary>/// 获取数组a中最大值/// </summary>/// <param name="list"></param>/// <returns></returns>private static int getMax(List<int> list){int mlistx;mlistx = list[0];for (int i = 1; i < list.Count; i++)if (list[i] > mlistx)mlistx = list[i];return mlistx;}/** 对数组按照"某个位数"进行排序(桶排序)** 参数说明:* a -- 数组* exp -- 指数。对数组a按照该指数进行排序。** 例如,对于数组a={50, 3, 542, 745, 2014, 154, 63, 616};* (01) 当exp=1表示按照"个位"对数组a进行排序* (02) 当exp=10表示按照"十位"对数组a进行排序* (03) 当exp=100表示按照"百位"对数组a进行排序* ...*/private static void countSort(List<int> list, int exp){//int output[list.length]; // 存储"被排序数据"的临时数组int[] output = new int[list.Count]; // 存储"被排序数据"的临时数组int[] buckets = new int[10];// 将数据出现的次数存储在buckets[]中for (int i = 0; i < list.Count; i++)buckets[(list[i] / exp) % 10]++;// 更改buckets[i]。目的是让更改后的buckets[i]的值,是该数据在output[]中的位置。for (int i = 1; i < 10; i++)buckets[i] += buckets[i - 1];// 将数据存储到临时数组output[]中for (int i = list.Count - 1; i >= 0; i--){output[buckets[(list[i] / exp) % 10] - 1] = list[i];buckets[(list[i] / exp) % 10]--;}// 将排序好的数据赋值给list[]for (int i = 0; i < list.Count; i++)list[i] = output[i];output = null;buckets = null;}#endregion#region 二叉树排序//待更新#endregion#region 选择排序/// <summary>/// 选择排序/// 时间复杂度:O(N^2)/// 空间复杂度:O(N^2)/// https://blog.csdn.net/zhuo_wp/article/details/78223481?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167783001016800213086400%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167783001016800213086400&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-78223481-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=C%23%20%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187/// </summary>/// <param name="list"></param>public static void SelectionSort(int[] array){for (int i = 0; i < array.Length - 1; i++){int minValueIndex = i;for (int j = i + 1; j < array.Length; j++){if (array[minValueIndex] > array[j]){minValueIndex = j;}}if (minValueIndex != i){Exchange(ref array[i], ref array[minValueIndex]);}}}private static void Exchange(ref int x, ref int y){int temp = x;x = y;y = temp;}private static void Exchange<T>(ref T x, ref T y){T temp = x;x = y;y = temp;}#endregion#region 希尔排序/// <summary>/// 希尔排序(移动法):先选择区间在用插入排序/// 时间复杂度:O(N^2)/// 空间复杂度:O(N^2)/// https://www.cnblogs.com/chengxiao/p/6104371.html/// </summary>/// <param name="list"></param>public static void XierSortForMove(List<int> list){//增量gap,并逐步缩小增量for (int gap = list.Count / 2; gap > 0; gap /= 2){//从第gap个元素,逐个对其所在组进行直接插入排序操作for (int i = gap; i < list.Count; i++){int j = i;int temp = list[j];if (list[j] < list[j - gap]){while (j - gap >= 0 && temp < list[j - gap]){//移动法list[j] = list[j - gap];j -= gap;}list[j] = temp;}}}}private static void XierSwap(List<int> list, int a, int b){list[a] = list[a] + list[b];list[b] = list[a] - list[b];list[a] = list[a] - list[b];}/// <summary>/// 希尔排序(交换法):先选择区间在用插入排序/// 时间复杂度:O(N^2)/// 空间复杂度:/// https://www.cnblogs.com/chengxiao/p/6104371.html/// </summary>/// <param name="list"></param>public static void XierSortForSwap(List<int> list){//增量gap,并逐步缩小增量for (int gap = list.Count / 2; gap > 0; gap /= 2){//从第gap个元素,逐个对其所在组进行直接插入排序操作for (int i = gap; i < list.Count; i++){int j = i;while (j - gap >= 0 && list[j] < list[j - gap]){//插入排序采用交换法XierSwap(list, j, j - gap);j -= gap;}}}}#endregion#region 堆排序/// <summary>/// 堆排序/// 时间复杂度:O(nlogn)/// 空间复杂度:O(1)/// https://blog.csdn.net/qq_35552025/article/details/77995524?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%A0%86%E6%8E%92%E5%BA%8F%20C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-77995524.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187#%E5%AE%9E%E7%8E%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-77995524.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt/// </summary>/// <param name="list"></param>public static void HeapSort(List<int> list){//将最大的值推到堆顶//x根据最后一个子节点的位置计算出父节点int x = Convert.ToInt32(Math.Floor(Convert.ToDouble((list.Count - 2) / 2)));for (int i = x; i >= 0; i--){//如果子元素只存在左子元素是 让右子元素等于左子元素while (list[i] < list[i * 2 + 1] || list[i] < list[(i * 2 + 2) > (list.Count - 1) ? (i * 2 + 1) : i * 2 + 2]){if (list[i * 2 + 1] >= list[(i * 2 + 2) > (list.Count - 1) ? (i * 2 + 1) : i * 2 + 2]){int index = list[i];list[i] = list[i * 2 + 1];list[i * 2 + 1] = index;}else{int index = list[i];list[i] = list[i * 2 + 2];list[i * 2 + 2] = index;}}}//输出堆顶最大的元素int max = list[0];list[0] = list[list.Count - 1];Console.Write("{0}\t", max);//将数组中的最后一个元素删除List<int> num = new List<int>(list.Count - 1);for (int j = 0; j < list.Count - 1; j++){num[j] = list[j];}Adjust(num);}public static void Adjust(List<int> list){if (list.Count > 1){HeapSort(list);}}#endregion#region 快速排序/// <summary>/// 快速排序/// 时间复杂度:O(nlogn)/// 空间复杂度:O(1)/// https://blog.csdn.net/enternalstar/article/details/106932822?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167783146916800188592132%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167783146916800188592132&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-106932822-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=C%23%20%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187/// </summary>/// <param name="list"></param>public void QuickSort(List<int> list, int lo, int hi){if (lo > hi)//递归退出条件{return;}int i = lo;int j = hi;int temp = list[i];//取得基准数,空出一个位置while (i < j)//当i=j时推出,表示temp左边的数都比temp小,右边的数都比temp大{while (i < j && temp <= list[j])//从后往前找比temp小的数,将比temp小的数往前移{j--;}list[i] = list[j];//将比基准数小的数放在空出的位置,j的位置又空了出来while (i < j && temp >= list[i])//从前往后找比temp大的数,将比temp大的数往后移{i++;}list[j] = list[i];//将比基准数大的数放在hi空出来的位置,如此,i所在的位置又空了出来}list[i] = temp;QuickSort(list, lo, i - 1);//对lo到i-1之间的数再使用快速排序,每次快速排序的结果是找到了基准数应该在的位置//其左边的数都<=它,右边的数都>=它,它此时在数组中的位置就是排序好时其应该在的位置。QuickSort(list, i + 1, hi);//对i+1到hi之间的数再使用快速排序}#endregion
}
GitCode地址
有用点个Fork啊
更新记录
2023-5-30 更新了九个排序静态算法
相关文章:

【简单实用框架】【十大排序算法直接调用】【可移植】
☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…...

微服务架构之RPC调用
在单体应用时,一次服务调用发生在同一台机器上的同一个进程内部,也就是说调用发生在本机内部,因此也被叫作本地方法调用。在进行服务化拆分之后,服务提供者和服务消费者运行在两台不同物理机上的不同进程内,它们之间的…...

One2Multi Graph Autoencoder for Multi-view Graph Clustering
One2Multi Graph Autoencoder for Multi-view Graph Clustering | Proceedings of The Web Conference 2020 (acm.org) 目录 Abstract 1 Introduction 2 Model 2.1 Overview 2.2 One2Multi Graph Convolutional Autoencoder Informative graph convolutional encoder M…...

Java编程实现输入数的阶乘(for循环):读入一个小于 10 的整数 n,输出它的阶乘 n。(for循环)
public class Main { public static void main(String[] args) { Scanner input new Scanner(System.in); //输入提示语句 System.out.print(“请输入一个小于10的数:”); //从键盘获取值 int num input.nextInt(); //定义一个总和 int sum 1; //开始判断输入数是…...

算法提高-搜索-FloodFill和最短路
FloodFill和最短路 FloodFillAcwing 1097. 池塘计数AcWing 1098. 城堡问题AcWing 1106. 山峰和山谷 最短路AcWing 1076. 迷宫问题AcWing 188. 武士风度的牛AcWing 1100. 抓住那头牛 FloodFill Acwing 1097. 池塘计数 //acwing 1097. 池塘计数 #include <iostream> #inc…...

【蓝桥杯单片机第八届国赛真题】
【蓝桥杯单片机第八届国赛真题】 文章目录 【蓝桥杯单片机第八届国赛真题】前言一、真题二、源码 前言 有幸进入国赛,为自己大学最后一个比赛画上完满的句号^^ 下面为蓝桥杯单片机第八届国赛程序部分,功能差不多都实现了,可能存在小bug&#…...

一种简单的Android骨架屏实现方案----0侵入0成本
对骨架屏的理解 什么是骨架屏 所谓骨架屏,就是在页面进行耗时加载时,先展示的等待 UI, 以告知用户程序目前正在运行,稍等即可。 等待的UI大部分是 loading 转圈的弹窗,有的是自己风格的小动画。其实大同小异。而骨架屏无非也是一…...

【Kubernetes 架构】了解 Kubernetes 网络模型
Kubernetes 网络使您能够在 k8s 网络内配置通信。它基于扁平网络结构,无需在主机和容器之间映射端口。 Kubernetes 网络支持容器化组件之间的通信。这种网络模型的主要优点是不需要在主机和容器之间映射端口。然而,配置 Kubernetes 网络模型并不是一件容…...

shell
一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 二、判断web服务是否运行 三、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,…...

springboot+ssm+java校园二手物品交易系统vxkyj
样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于Java语言、Jsp技术设计并实现了校园二手物品交易系统。系统主要包括个人中心、商家管理、用户管理、商品分类管理、商品信息管理、商…...

Android系统内置应用
Android系统内置应用 背景 客户提供APK,需要集成进系统,并且不可卸载 Android原生是怎么做的? 已Launcher3为例,apk是位于/system/priv-app/Launcher3目录下 AOSP系统内置app步骤 1.在package/apps/目录下创建相应的文件夹如&…...

CMMI实施需要准备什么:
1. 人力资源 实施中会涉及到EPG过程改进小组、QA、试点项目团队等人力资源: 1) 专职人员:1-2名 即在CMMI实施推广期内,基本上100%的时间投入。 2) 质量人员:1-更多名 组建质量管理部门,实施体系执行的监控&#x…...

【ARM AMBA AXI 入门 1 - AXI 握手协议】
文章目录 1.1 AXI 双向握手机制简介1.1.1 信号列表1.1.2 双向握手目的1.1.3 握手过程 1.2 数据通路的握手要求1.2.1 读数据通路1.2.2 读地址通路1.2.3 写数据通路1.2.4 写地址通路1.2.5 写回复通路1.2.6 全信号 1.3 不同数据通路间的约束关系1.3.1 读操作约束关系1.3.2 写操作约…...

详解uni-app应用生命周期函数
详解uni-app应用生命周期函数 详解uni-app应用生命周期函数 文章目录 详解uni-app应用生命周期函数前言一、应用生命周期函数二、页面生命周期函数总结 前言 UNI-APP学习系列之详解uni-app应用生命周期函数 一、应用生命周期函数 函数名说明onLaunch当uni-app 初始化完成时触…...

【WebFlux】List指定bean引用对象更新后同步到List
Java 8的流式API实现 如果你想在WebFlux中更新List中指定bean的引用对象并将其同步到List中,你可以使用Java 8的流式API来完成这个任务。 以下是一个例子: List<MyBean> myBeanList new ArrayList<>(); MyBean myBean1 new MyBean(); My…...

【JavaSE】Java基础语法(二十六):Collection集合
文章目录 1. 数组和集合的区别2. 集合类体系结构3. Collection 集合概述和使用【应用】4. Collection集合的遍历【应用】5. 增强for循环【应用】 1. 数组和集合的区别 相同点 都是容器,可以存储多个数据不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型…...

jmeter做接口压力测试_jmeter接口性能测试
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免…...

网络编程 lesson5 IO多路复用
select 当需要在一个或多个文件描述符上等待事件发生时,可以使用select函数。 select函数是一个阻塞调用,它会一直等待,直到指定的文件描述符上有事件发生或超时。 select函数详解 int select(int nfds, fd_set *readfds, fd_set *writefd…...

码出高效_第一章 | 有意思的二进制表示及运算
目录 0与1的世界1.如何理解32位机器能够同时处理处理32位电路信号?2.如何理解负数的加减法运算3.溢出在运算中如何理解4.计算机种常用的存储单位及转换5.位移运算规则6.有趣的 && 和 & 浮点数1.定点小数(为什么会出现浮点数表示?…...

测试类型(单元、集成、系统或手动测试)
测试类型(单元、集成、系统或手动测试) 单元测试 单元是系统的单个组件,例如类或单个方法。孤立地测试单元称为单元测试。 优点:速度快/易控/易写 缺点:缺乏现实性/无法捕获所有错误(例如与其他组件或服务的交互) 单元…...

【笔试强训编程题】Day3.(字符串中找出连续最长的数字串 69385)和(数组中出现次数超过一半的数字 23271)
作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训编程题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!! 文章目录…...

学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解
在了解缓存雪崩、击穿、穿透这三个问题前,我们需要知道为什么我们需要缓存。在了解这三个问题后,我们也必须知道使用Redis时,如何解决这些问题。 所以我将按照"为什么我们需要缓存"、"什么是缓存雪崩、击穿、穿透"、&qu…...

Android 12.0SystemUI 状态栏下拉和通知栏始终居中
1.概述 在12.0的产品定制化开发中,在系统原生的SystemUI 状态栏下拉和通知栏,默认是根据手势的x 坐标的位置居中显示,但是如果太靠两边感觉不太好,下拉太靠边不太好看所以产品提出不管手势在哪里下滑 都要去下拉和通知栏居中显示 会比较好看些 下面就来实现这个需求 2.Sy…...

面向过程编程和面向对象编程的区别
目录 一、面向过程编程 举个栗子: 二、面向对象编程 继续举个栗子: 三、区别 面向过程编程和面向对象编程是两种不同的编程范式,它们在代码的组织和结构上有所不同。 一、面向过程编程 面向过程编程(Procedural Programmin…...

2023年数学与人工智能国际会议——火热征稿中~
会议简介 Brief Introduction 2023年数学与人工智能国际会议(CFMAI 2023) 会议时间:2023年9月22 -24日 召开地点:中国杭州 大会官网:www.cfmai.org 2023年数学与人工智能国际会议(CFMAI 2023)由中山大学主办,CoreShare科享学术交流…...

格式化数字的实用命令:numfmt
在 Linux 系统中,numfmt 是一个用于格式化数字的实用工具。它可以将数字转换为不同的表示方式,如十进制、二进制、字节单位等。本文将详细介绍 numfmt 命令的使用方法,并提供一些适合初学者的示例。 Numfmt 命令语法 numfmt 命令的基本语法如…...

传统的交叉熵函数如何通过平滑处理可以适用于多标签分类任务
传统的交叉熵损失函数通常用于多分类问题,而在多标签分类问题中,每个样本可能属于多个标签,因此需要使用一些新的技术来优化交叉熵损失函数。 一种常用的技术是标签平滑(Label Smoothing),它可以优化传统的…...

关于Netty的一些问题
1.Netty 是什么? Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方法灵活。 2.Netty 的特点是什么? 高并发&…...

Java - ThreadLocal数据存储和传递方式的演变之路
Java - ThreadLocal数据存储和传递方式的演变之路 前言一. InheritableThreadLocal - 父子线程数据传递1.1 父子线程知识预热和 InheritableThreadLocal 实现原理1.2 InheritableThreadLocal 的诟病 二. TransmittableThreadLocal (TTL) 横空出世2.1 跨线程变量传递测试案例2.2…...

vuex三问
文章目录 一、什么是vuex?二、为什么使用vuex?三、如何使用vuex?1.首先安装vuex2.注册vue中3.实例化vuex的store4. 挂载在vue实例上5.在组件中就可以通过this.$store对vuex进行操作。 总结 一、什么是vuex? Vuex 是一个专为 Vue.…...