0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念 稳定:如果a原本在b前面 继续阅读
Search Results for: 排序算法
查询到最新的12条
chatGPT教你算法(1)——常用的排序算法
0. 引言 最近喜闻ChatGPT能够帮助我们认识世界了,我必须得作为先行者下场一波了。虽然ChatGPT对主观的一些看法是拿不准的,但是常规的基础性教学真的是信手拈来,别的地方不说,作为助教,我给他打200分。 这真的让我想起来了小时候看的一个小说《师士传说》中的没有感情的牧,两者真的是太像了。 好了闲话不说,我们来看看ChatGPT教你常见的排序算法吧!是不是通俗易懂 继续阅读
C语言 八大排序算法的过程图解及实现代码
目录 前言 一、插入排序 时间复杂度 空间复杂度 代码实现(升序) 二、希尔排序 时间复杂度 空间复杂度 代码实现 三、选择排序 时间复杂度 空 继续阅读
七大经典排序算法图解
插入排序 ①直接插入排序 基本思想 每次从一个有序序列开始,将待排元素与有序序列中的元素从后往前逐个比较, 若有序序列中的元素大于待排元素,则将较大的元素往后覆盖; 否则,将待排元素插入其前面,并结束此轮比较。 动图演示 代码实现 void InsertSort(int* a, int n) { for (int i = 0; i < n - 1; i++) { int end = 继续阅读
ChatGPT - 小试牛刀 - 试水排序算法
在网上找了几家国内的chagpt镜像,最后还是没忍住上车了,试了一下传说中的写代码能力,果然鸟得很。 不废话直接上图: 上面的测试地址是 唠嗑么ChatGPT国内镜像网站,从站点上也能看到ChatGPT的能力了,什么写作啦,知识问答啦,翻译啦,编程啦,炸了!!! ps一下,今天对比了几 继续阅读
基数排序简介及Java语言实现
基本思想 基数排序(radixsort)是在桶排序的基础上发展而来的,两种排序都是分配排序的高级实现。分配排序(distributivesort)的基本思想:排序过程无须比较关键字,而是通过“分配”和“收集”过程来实现排序。它们的时间复杂度可达到线性阶:o(n)。 基数排序是一种稳定的排序算法,但有一定的局限性: 1、关键字可分解。 2、记录的关键字位数较少,如果密集更好 3、如果是数 继续阅读
二分查找 - 数据结构和算法教程
二分查找被定义为在排序数组中使用的一种搜索算法,它通过重复将搜索间隔分成两半来实现。二分查找的思想是利用数组被排序的信息,将时间复杂度降低到O(log N)。 在数据结构中应用二分查找的条件 数据结构必须排序。访问数据结构的任何元素都需要恒定的时间。 二分查找算法 在该算法中, 通过查找中间索引“mid”将搜索空间分成两半。 将搜索空间的中间元素与键进行比较。如果在中间元素处找到键,则终止该过程。如 继续阅读
Python机器学习算法
这本Python机器学习算法图书,是2017-07-01月由电子工业出版社所出版的,著作者信息: 赵志勇 著,本版是第1次印刷, ISBN:9787121313196,品牌:博文视点, 这本书的包装是16平装,所用纸张为胶版纸,全书页数364,字数有万字, 是本值得推荐的Python软件开发图书。此书内容摘要《Python机器学习算法》是一本机器学习入门读物,注重理论与实践的结合。全书主要包括6个部分,每个部分均以典型的机器学习算法为例,从算法原理出发,由浅入深,详细介绍 继续阅读
【MATLAB第42期】基于MATLAB的贝叶斯优化决策树分类算法与网格搜索、随机搜索对比,含对机器学习模型的
【MATLAB第42期】基于MATLAB的贝叶斯优化决策树分类算法与网格搜索、随机搜索对比,含对机器学习模型的评估度量介绍 网格搜索、随机搜索和贝叶斯优化是寻找机器学习模型参数最佳组合、交叉验证每个参数并确定哪一个参数具有最佳性能的常用方法。 一、 评估指标 1、分类 1.1 准确性 1.2 精度 1.3 召回 1.4 F1值 1.5 F0.5值 1.6 F2值 1.7 计算评估指标的功能 2、回归 2.1 平均绝对误差 2.2 均方误差 2.3 均方根误差 二、 基于F1值执 继续阅读
OpenCV算法精解:基于Python与C++
OpenCV算法精解:基于Python与C++,由电子工业出版社在2017-10-01月出版发行,本书编译以及作者信息为: 张平 著,这是第1次发行, 国际标准书号为:9787121324956,品牌为博文视点, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有412页,字数50万5000字,值得推荐。 此书内容摘要开篇先介绍如何在Windows和ubuntu上部署OpenCV,然后过度到核心章节,从灰度图像、彩色图像、图像平滑、边缘检测、霍夫变换等几个维度入手讲解, 继续阅读
java实现LRU缓存淘汰算法的方法
LRU算法:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的缓存(即使该缓存被访问的次数最多)。 如何实现LRU缓存淘汰算法 场景: 我们现在有这么个真实场景,我在爬取某个网站时,控制该网站的代理IP并发数,太多会搞垮对方网站的对吧,要蹲号子的呢。这里我需要维护一个代理IP代理池,而且这些IP肯定不是一直都很稳定的,但是又不能取一个就丢一个,这样太浪费资源。所以我会将这些IP缓存起来,进行按需提取,采用LRU 继续阅读
使用cocos2dx实现碎片炸裂 P2(凹多边形的三角切割算法)(修订1)
上一章虽然已经能够将纹理碎片化,但是固定一条边,然后依次匹配第三个顶点的作法是无法适用于凹多边形的。 作为一个阿里眼里的菜逼,之前想着这个算法应该很简单,结果网上的各种转载也没找到个说清楚的文章,所以我将算法设计出来并实现了。本章将说一说如何“肢解”凹多边形。注意,这里仅仅是凹多边形,而不是形套洞,洞套形的套娃式复杂多边形,肢解那种多边形的算法相对更为复杂。而且最关键的 继续阅读