排序算法笔记

【学习笔记】我的C++排序算法 1、计数排序 场景:要求对学生成绩进行排序,而且相同成绩的顺序保持不变 /** *@arr表示学生成绩的数组 *@maxVal表示成绩最高分(也可以是学生总人数,此时需要判断最高分) *追求尽可能低的时间复杂度 *学生成绩在0~100分之间 */ 首先判断稳定排序有冒泡(O(n2)O(n^2)O(n2))、插入(O(n2)O(n^2)O(n2))、归并(O(nlog(n))O(nlog(n)... 阅读详情

1、直接插入排序(On^2,稳定的)

将最左边的作为一个有序数列;设立哨兵,比较并插入已形成的有序数列中。


2、希尔排序(时效不好分析,不稳定)

直接插入排序的升级版,调整不同的增量d/2----缩小增量排序,

3、快速排序的思想是分治思想

概括来就是在分治的过程中,每次以最后一个元素为基准,两个index指向头端和尾端,然后前段index右移找寻比基准大的数,后端index左移找寻比基准小的数,都找到后就开始开始交换两个数,直到左右两个index相遇。这样一轮下来,在最后相遇的地点,左边的都是比基准小的数,毕竟比基准大的都换到右边去了,右边同理。然后把基准换到相遇的地点,然后分治思想对左边的细换。


PS:是否稳定的标准:相等元素的前后顺序没有改变。

Halcon频域滤波实战:5分钟搞定傅里叶变换与功率谱分析(附完整代码) 本文提供Halcon频域滤波的实战指南,重点讲解如何利用傅里叶变换与功率谱分析快速解决图像处理难题。通过核心算子fft_image和power_real,演示了从空间域转换到频域、分析功率谱以定位周期性噪声,并构造滤波器进行精准去除的完整流程,附有可直接运行的代码示例。 阅读详情

相关推荐

iOS自动化之打包-xcodebuild命令行打包.app并安装到ios模拟器

xcode xcodebuild xcrun ios模拟器 iOS UI自动化测试 ios自动打包安装到ios模拟器

z12347891的博客 5079

直接插入排序

直接插入排序 基本思想 它的工作原理是通过构建有序序列,对未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 默认构建个有序数列(就是第一个笑脸吧),设置一个小人作为Criterion,一般设置有序数列的最后一个。 这样后面的小人就不高兴了,我们都是被你默认为无序的。所以后面的小人必须要插队到有序的数列里去。 具体步骤: First:我们肯定要从无序的数列中依次把他们插入到有序的数列中去,3号小人首当其冲,向前方已经排序好的数列进军。 Second:一比才发现3号小人他比8号要小,他必

weixin_45777729的博客 122

[捷稀 JCG Q30 Pro 刷机说明] 以刷入openwrt24.10为例

摘要: 本文详细介绍了捷稀JCG Q30 Pro路由器刷入OpenWrt 24.10系统的步骤。通过先刷入OpenWrt 23.05过渡固件,再升级Uboot,最后通过TFTP加载工厂镜像完成刷机。关键步骤包括解锁分区、刷写Uboot、进入恢复模式及配置网络。文章还提供了无线设置、Tailscale内网穿透等进阶命令,并附参考文档和固件下载链接。适用于有一定技术基础的玩家,需注意操作风险,严格按流程执行。

贤时间 7148

经典七大排序算法

首先排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 归并排序: 归并排序。 (一) 冒泡排序 冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序。时间复杂度为==O(n^2)==。 /**...

HY—Chan 1715

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

COSMO-RS理论:流体相热力学预测的核心模型与技术突破

摘要:COSMO-RS模型通过量子化学计算分子表面电荷分布,实现了从微观量子尺度到宏观化工过程的热力学预测。该模型基于介电连续介质理论,将分子表面片段化处理,通过σ-剖面描述电荷分布,并计算片段间的静电失配能和氢键能。其核心算法通过自洽化学势方程求解活度系数,克服了传统模型依赖实验参数的局限。随着技术进步,模型引入了高阶描述符和色散力修正,提升了预测精度。在药物研发、化工分离等领域广泛应用,但仍存在对长程有序结构预测不足等局限性。该模型为复杂体系的热力学性质预测提供了重要理论工具。

ASKCOS博客 975

【24】六大常用排序算法

一.

藏经阁 | 玄苦 3266

【JDK】win 10 / win 11:jdk 8 下载、安装、配置、验证

win10 / win 11:JDK 最新版本下载 / 历史版本下载(jdk 8)、安装、配置系统环境变量、验证安装全详细操作教程

顾三殇 —— 博客空间(软件测试) 13万+

数据结构—图解排序算法+github代码实现(希尔、冒泡、快排、堆排序、归并排序等)

数据结构之排序算法 排序算法分类 ​ 排序算法分为:插入类排序、交换类排序、选择类排序、归并类排序和基数类排序。 插入类排序 直接插入排序 思路 首元素有序,从[2, N]依次插入前面的有序表,并使其依然有序。 稳定性:稳定的 时间复杂度: 平均:O(N的平方) 最好:原始序列非递减有序(正序) 最坏:原始序列非递增有序(逆序) 代码实现 代码实现如下: void InsertSort::Sort(ISortObj* objs[], int len) { for (int i

我爱下午茶 769

【WRF-Chem教程-附录B】使用 MOZART 与WRF-Chem

使用MOZART与WRF-Chem

WW、forever的博客 242

25 - GRACE Mascon数据缺失月份数据插值

本篇基于文章的相关内容和文章公开的奇异谱分析(SSA)插值算法程序包,对grace Mascon数据种缺失的月份进行 插值 ,总结了使用程序包的相关过程,可以将该程序应用到其他数据处理插值计算中。

weixin_43339605的博客 1843

排序算法

  产生随机数进行测试 function randomNum(num) { const data = [] for (let i = 0; i < num; i++) { const val = Math.round(Math.random() * 100) data.push...

github_38186390的博客 237

面试官连夜整理:103道AI Agent面试题,答对一半直接加薪50%

维度AutoGPTLangGraphAutoGen控制流LLM 驱动的隐式循环代码层定义的显式状态图对话驱动的自动流转状态存储Prompt 上下文中(易丢失)结构化 State 对象(可持久化)对话历史(自动累积)分支能力依赖 LLM 的文本输出(不稳定)条件边 + 节点路由(确定性)多 Agent 对话自然分支(涌现式)回溯/回滚无原生支持,只能重新开始原生 Checkpoint 支持时间旅行无全局回滚,单 Agent 可重启人机协同仅人工在关键点介入(需要自定义)原生支持。

weixin_35774598的博客 623

Leetcode刷题笔记——排序算法篇

本文给大家介绍了面试中常考的关于排序问题的算法题,本文重点介绍了计数排序、快速排序、堆排序(重点)、插入排序、归并排序(重点)、桶排序、还有自定义排序规则

qq_42898642的博客 2670

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

排序算法笔记(C++版)

排序算法笔记(C++版) 记录最近学习的排序算法 1.冒泡排序 时间复杂度:O(n)[最好],O(n2)[平均],O(n2)[最差] 空间复杂度:O(1) 代码: #include<iostream> #include<windows.h>//计时用 using namespace std; //冒泡排序算法 void bubbleSort(int data[], int...

码农爱学习的博客 752

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++笔记 常用排序算法

primer C++笔记 常用排序算法 // 插入排序 for (auto i = v.begin(); i != v.end(); ++i) { std::rotate(std::upper_bound(v.begin(), i, *i), i, i + 1); } //quicksort template <class ForwardIt> void quicksort(ForwardIt first, ForwardIt last) { if (first == last) retu

qq_36333986的博客 103

常见的排序算法 【复习笔记】

1. 后面的排序算法实现,对于逆序,只有知道原理,实现很容易2. 案例题:题目描述:将读入的 N 个数从小到大输出 ( 1 <= N <=10e5)输入描述:第一行一个正整数 N第二行 N 个空格隔开的正整数 ai输出描述:给定的 N 个数从小到大输出,空格隔开,行末换行无空格输入:54 2 4 5 1输出:1 2 4 4 5。

2402_87252674的博客 1296

算法笔记的学习心得和知识总结(三)|CodeUp and Pat篇(算法笔记第四章 排序算法)

目录结构 算法笔记CodeUp Pat汇总文章快速说明索引一、PAT    B1001 文章快速说明索引 学习目标: 因为最近一来要准备一下浙大PAT考试,二来复习一下将近遗忘的算法知识。正好把当年快翻烂掉的《算法笔记》再学一遍,权做C/C++和DSA的复习之用!注:因为进入工作岗位之后,基础知识的使用和遗忘会变得十分常见!面向过程 面向对象逐渐变成了面向百度编程,可是对于参加算法或编程竞赛而言 Baidu恐怕也帮不上忙了!古人云:温故而知新,可以为师矣! 1、CodeUp链.

孤傲小二~阿沐的博客 4698

排序算法刷题笔记【牛客网】

c.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。,45应该是在38和54之间,然而我做的时候只数到了54,忘了还要比较38

niexinyu0026的博客 832

C语言学习笔记:排序算法

C语言学习笔记:排序算法

WHNWZY的博客 494

常用排序算法笔记

快速排序递归实现 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists) 从数列中挑出一个元素,称为 “基准”(pivot); 重新排

m0_37628360的博客 234

《Algorithms》(4th Edition)学习笔记——初级排序算法

1、选择排序package ElementarySorts; import algorithms.StdIn; import algorithms.StdOut; public class Selection { public static void sort(Comparable[] a){ int N = a.length; for(int i = 0; i < N; i++)

JohnnieLULU的博客 407

排序算法理解笔记

1.插入排序 public void insertArray(Integer[] in ) { int tem =0; int num =0; int upnum =0; for (int i =0; i &lt; in .length; i++) { for (int j = i -1; j &gt;=0; j--) { ...

lovelyesz的博客 164

JAVA排序算法笔记

文章目录一、时间复杂度(判别排序算法优劣的尺度)1、时间频度介绍和特点2、时间复杂度计算3、常见的时间复杂度1)、O(1)2)、O(logn)3)、O(n)4、平均时间复杂度二、冒泡排序1、冒泡算法实现2、冒泡算法优化 一、时间复杂度(判别排序算法优劣的尺度) 1、时间频度介绍和特点 时间频度:算法的时间复杂度与代码中语句执行次数成正比,例如计算1-100的和,代码: int total=0; int end=100; for(int i =1;i<=end;i++){ total+=i; }

weixin_44062399的博客 620

排序算法学习笔记

排序算法学习笔记 排序算法目录如下: 冒泡排序 选择排序 快速排序 堆排序 归并排序 冒泡排序 冒泡排序[1]:时间复杂度O(n^2) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少...

wangwang的博客 328
上一篇: 算法总结
下一篇: leetcode92. Reverse Linked List II
kotomi_du
博客等级 码龄10年 5粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值