排序算法(1)—选择,插入,希尔

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践 本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。 阅读详情

三种初级排序

一.选择排序

  1. 排序思想:依次找到最小(最大)元素,并与未排序数组的第一个元素交换,若为数组第一个元素,则和自己进行交换,若为数组最后一个元素,排序完成。
  2. 排序实现:(java代码)
    public static void SelctionArray(int[] arr)
    {
        int N = arr.length;
        for ( int i = 0; i<N; i++)
        {
            int min = i;
            for (int j = i+1; j<N; j++)
                if (arr[j]<arr[i])  
                {
                    min = j;
                    int t = 0;
                    t = arr[i];arr[i] = arr[j]; arr[j] = t;
                }           
        }
    }
  1. 复杂度:
    时间复杂度:N^2
    空间复杂度:1
    对于长度为N的数组,大约进行N^2次比较和N次交换。
    注意:排序所需时间和数组是否有序无关;
    数据移动次数相对大多数排序算法是最少的。

二.插入排序

  1. 排序思想:
  2. 排序实现:(java代码)
    public static void InsertionSort(int[] arr)
    {
        int N = arr.length;
        for (int i = 0; i<N; i++)
        {
            for (int j = i; j>0 && arr[j]<arr[j-1];j--)
                exch(arr,j,j-1);  //交换arr[j]和arr[j-1].
        }
    }
  1. 复杂度:
    时间复杂度:N~N^2
    空间复杂度:1
    对于长度为N的且不重复的数组,平均需要~N^2/4次比较,一级~N^2次交换。
    最好需要N-1次比较,最坏需要~N^2/2次比较和~N^2次交换。

三.希尔排序

  1. 排序思想:使数组任意相隔为h的元素是有序的(h有序数组)。当h=N(数组长度)/3递减到h=1时,则排序完成。
  2. 排序实现:(java代码)
    public static void shellSort(int[] arr)
    {
        int N = arr.length;
        int h = 1;
        while(h < N/3) h = h*3+1;//h=1,4,13,40,...
        while(h>=1)
        {
            //使得数组变为h有序
            for (int i = h;i<N; i++)
            {
                for(int j = i;j>=h && arr[j]<arr[j-h]; j -= h)
                    exch(arr,j,j-h);  //交换arr[j]和a[j-h]
            }
            h = h/3;
        }
    }
  1. 复杂度:
    时间复杂度:并非很确定,~N的5/6次方,~NlogN.
    空间复杂度:1
    注意:h的每次递减的次数,带来的比较次数大约为N的1/5次方。

参照算法第四版


内容原创,转载请注明出处
大模型训练方法全面解析:SFT、RFT、TRPO、DPO、PPO、GRPO、RLH、RLHF技术深度剖析 大模型训练方法全面解析 本文系统介绍了当前主流的大模型训练和对齐技术,包括监督微调(SFT)、拒绝采样微调(RFT)、信任域策略优化(TRPO)、直接偏好优化(DPO)、近端策略优化(PPO)等。这些方法各有特点:SFT简单高效但数据依赖性强;RFT通过质量筛选提升输出质量;TRPO训练稳定但计算复杂;PPO是RLHF核心算法,平衡探索与利用。文章详细分析了各方法的实现原理、优势劣势及适用场景,为开发者选择合适的大模型训练策略提供参考。 阅读详情

相关推荐

STM32F407VET6与CH395Q串口通信实战:从零搭建以太网客户端(附完整代码)

本文详细介绍了基于STM32F407VET6微控制器与南京沁恒微CH395Q以太网芯片,通过串口通信从零搭建TCP客户端应用的完整实战过程。内容涵盖硬件连接、驱动层设计、基于FreeRTOS的任务实现以及核心调试技巧,并提供了完整的代码示例,帮助嵌入式开发者快速实现设备联网功能。

weixin_29179311的博客 417

排序之插入排序与选择排序

在我们日常生活中,排序的使用可谓是相当广泛,一个好用的排序算法,可以让速度大大提高,今天我们来学习八大排序的四种直接插入排序、希尔排序、选择排序、堆排序。

kkbca的博客 855

拉普拉斯矩阵

1、预备知识 拉普拉斯矩阵定义为:L=D-W。其中,D为度矩阵,W为权重矩阵。 (1)D是对角矩阵,对角线上的元素时节点的度,即所有与该节点相关联的边的权重之和;对角线以外的元素为0。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。 图1.1 无向图中的度矩阵 (2)W在无向图中是对称矩阵,在有向图中是非对称矩阵。 ...

zzhe 1万+

排序算法1(冒泡 / 选择 / 插入 / 希尔)

排序:Sort 1.从小到大(非递减) 2.排序一般只能应用在线性结构上(虽然链表也可以排序,但是如果没有特别说明,则默认为数组) 冒泡排位 Bubble Sort 选择排序 Select Sort 插入排序 Insert Sort **整体思路: 将无序区间不断缩小,到整个区间有序。**3 使用 9 5 2 7 3 进行三种排位的模拟 public class Sort { /* 情况分为最好/平均/最坏 最好:有序

qq_35535026的博客 176

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

10bit SAR ADC电路:200多页设计与仿真文档,附gpdk045工艺与testbench,可直接导入Virtuoso仿真,含以太网、PLL电路例程及进阶ADC

拥有超过200页的详细设计和仿真文档,它以gpdk045工艺为基础,testbench均可直接导入virtuoso仿真,为我们提供了一个全面了解ADC电路设计的绝佳机会。通过对10bit SAR ADC电路的详细解析,我们不仅了解了其设计背后的原理和实现方法,还体会到了数字与模拟技术的交融之美。这个SAR ADC的结构采用了经典的电荷重分配架构。一个10bit SAR ADC电路,有200多页详细的设计和仿真文档,附带对应的gpdk045工艺,testbench都有,可直接导入virtuoso仿真。

OMyAVKmGPBOF的博客 1335

数据结构—排序算法1(冒泡、选择、插入、希尔)

【代码】数据结构—排序算法1(冒泡、选择、插入、希尔)

weixin_68908154的博客 220

【AMD | Docker】超级全面版本:在Docker中验证AMD GPU移动显卡可用性的方法

1. 安装ROCm Docker支持 ■AMD GPU驱动 ■ROCM ■Docker 2. 配置Docker使用ROCm 3. 使用官方ROCm Docker镜像 4. 使用Docker CLI参数访问GPU

静谧、淡雅 688

必备基本排序算法1——冒泡、插入、选择、快排、希尔、堆排

排序算法,冒泡,插入,选择,快速排序,快排,希尔排序,堆排序。

weixin_43920383的博客 244

AWS DevOps Agent 完全指南

AI 驱动的 SRE 队友,7×24 自主调查告警、定位根因、生成修复方案、预防未来故障。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 385

Open3D 点云转深度图像【2026最新版】

python版本Open3D 实现的点云转深度图像,博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 2838

关于排序算法的学习与总结1---冒泡、选择、插入、希尔排序

排序算法(SortAlgorithm)也称排序,排序是将一组数据,依指定的顺序进行排列的过程1)内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序:2)外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,该算法的运行时间。最坏情况下的时间复杂度称最坏时间复杂度。一般讨论的时间复杂度均是最坏情况下的时间复杂度。

MMMMMyyyyffff的博客 793

SCADA|测试KingSCADA4.0信创版采集汇川PLC AC810数据

摘要:雷工分享KingSCADA4.0信创版采集汇川PLC数据的配置过程。由于项目繁忙,笔记更新延迟。信创产业要求采用国产化产品,此次通过ModbusTCP协议连接AC810 PLC。主要步骤包括:新建IOServer应用(需厂家协助从3.8升级至4.0)、安装ModbusTCP驱动、配置设备地址(192.168.1.88:5021)、运行IOServer并通过网页监控变量。尽管信创版操作体验较差,但出于国产化战略需要仍需使用。雷工表示理解产品初期不足,相信未来会逐步优化。2025年4月11日记录于四川绵阳

做有价值的事,积累有价值的笔记! 865

排序算法1(冒泡排序、选择排序、插入排序、希尔排序)

排序算法1 目录排序算法1冒泡排序主要思想代码优化代码选择排序主要思想代码插入排序主要思想代码希尔排序主要思想代码使用希尔排序对冒泡进行优化代码 冒泡排序 主要思想 对排序序列从前向后,依次比较相邻元素的值,如果逆序则交换。 代码 static void BubbleSort(int[] arr) { for (int i = 0; i < arr.Length - 1; i++) { for (int j = 0; j < arr.Length - i - 1;

RoySummy的博客 288

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

排序算法系列1--简单排序(选择,冒泡,直接插入,希尔排序)

排序是数据处理中十分常见的操作,现代高级语言都有现成的n种排序算法。但了解它们的代码,对计算机思维有帮助。 简单选择排序 每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 无论数组原始排列如何,比较次数都不变;变的是交换次数。完全有序的情况下无需交换移动元素,最差情况下(把数组倒序改成正序),交换次数最多: n...

weixin_30332241的博客 965

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

八大排序算法1(冒泡 选择 插入 希尔 桶排序)

八大排序算法 堆排序 归并排序 快速排序

IT_涛涛 1536

排序算法(1)---希尔排序,插入排序,选择法排序

排序算法有多种,这里对快速排序,希尔排序,选择法排序,插入排序以及堆排序进行理解。

weixin_43212052的博客 185

常用的排序算法性能分析(1)—— 选择排序、插入排序、希尔排序

规则排序成本模型:在研究排序算法时,我们需要计算比较和交换的数量。对于不交换元素的算法,我们会计算访问数组的次数。排序算法可以分为两类: 除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法 需要额外内存空间来存储另一份数组副本的其他排序算法 选择排序 首先,找到数组中最小的那个元素。 其次,将它和数组的第一个元素交换位置。(如果第一个元素最小,那么它和自己交换位置) 再次,在剩下

HeatDeath的博客 1093

常见排序算法(1):冒泡排序、选择排序、插入排序、希尔排序、快速排序

它的主要思想是将待排序的数组分成若干个子序列进行插入排序,然后再对整个序列进行插入排序。实现过程中,需要预先设定一个。

m0_73589720的博客 800

排序算法学习(1)(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序)

文章目录直接插入排序代码实现复杂度的计算希尔排序希尔排序的预排序代码实现选择排序代码实现堆排序冒泡排序代码实现 ???? 注:以下排序都是以排升序为例。 直接插入排序 直接插入排序的主要思路就是: 1.首先默认第一个元素是有序的。 2.然后将其下一个元素作为待排序的元素,插入到前面有序序列的相应位置。至于插入的过程,如果遇到比待排序大的元素,则这个元素后移,直到遇到比其小的元素,然后将待插入元素放入其前一个位置。 代码实现 void Insertsort(int *a, int sz) { i

IamGreeHand的博客 1451

十大排序算法-快排-希尔-堆排-归并-冒泡-桶排-选择-插入-计数-基数-1

文章目录1. 排序算法1.1 算法的之间的比较1.2 冒泡排序1.3 选择排序1.4 插入排序1.5 快速排序1.6 堆排序1.7 计数排序1.8 桶排序1.9 基数排序1.10 希尔排序1.11 归并排序 1. 排序算法 1.1 算法的之间的比较 排序算法 平均时间复杂度 最差时间复杂度 空间复杂度 数据对象稳定性 冒泡排序 O(n2) O(n2) O(1) 稳定 选择排序 O(n2) O(n2) O(1) 数组不稳定、链表稳定 插入排序 O() O() O() 稳定 快速排序

李木子的博客 1万+

常用的排序算法实现(1)-选择排序、插入排序、希尔排序、归并排序、快速排序

package sort; import java.util.Arrays; /** * 描述: * 排序算法 * * @author wanghui email:wanghuiaf@yonyou.com * @create 2020-04-13 上午11:03 */ public class SortAlgorithm { private static Compara...

u010105645的专栏 227

排序算法(1):插入排序,选择排序,希尔排序,堆排序

插入排序,选择排序,堆排序,希尔排序

o_bvious的博客 297

Algorithms-2.1 Elementary Sorts 初级排序算法(选择排序、插入排序、希尔排序)

Elementary Sorts 1 排序介绍(rules of the game) 1.1 示例 给0-1之间的小数升序排序 package Chapter02; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdRandom; import edu.princeton.cs.algs4.Insertion; //Sort random real numbers in ascending order pub

Joyji99的博客 337

《数据结构》(9) - 排序算法(1)- 插入排序,希尔排序,选择排序,冒泡排序

文章目录排序概念及分类排序算法分类排序稳定性直接插入排序一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 排序概念及分类 排序算法分类 排序稳定性 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 提示:以下排序算法均以实现升序排列为例 直接插入排序 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了

weixin_52142420的博客 396

排序算法(1)-冒泡排序,选择排序,插入排序,希尔排序,快速排序

一些基本的排序算法: package tenSortingMethods; /** * @author zhangdi * @description 排序算法 * @Date 20180531 */ public class Sort { public static void main(String[] args) { int[] arr = {6,1,2,...

Ryze 866

十大排序算法之插入排序、希尔排序、选择排序

八大排序中的三种排序:插入排序、希尔排序、选择排序。

m0_74352571的博客 1187
下一篇: 排序算法(2)—归并排序,快速排序
luoz_python
博客等级 码龄10年 57粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值