算法笔记之排序
2023-09-27 14:22:51 时间
最近在看《算法笔记》,如果单从算法来说,这本书真正做到了短小精悍,首先以排序入题,那么我们今天也来说说排序。
排序
将一堆杂乱无章的元素按照某种规则有序排列的过程就叫“排序”.排序是一种非常基础的算法,有着广泛的理论和实践基础。对一个排序算法来说,一般从如下3个方面衡量算法的优劣:
- 时间复杂度:主要是分析关键字的比较次数和记录的移动次数。
- 空间复杂度:分析排序算法中需要多少辅助内存
- 稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种算法是稳定的;反之,就是不稳定的。
排序算法很多,我们按是否可以实现排序分为比较排序和非比较排序,在比较排序中常见的有,比较排序,梳排序,堆排序,归并排序,快递排序,内省排序等,非比较排序如,通排序,基数排序等。如果按传统的分类,则可以分为插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等,各大排序基于不同的场景设置,各有优势。接下来就选取几个常见的说明。
比较排序
在常见的排序算法中,大多数排序都属于这一种。在比较排序中,排序对象可以是任何类型,我们只需要知道如何比较两个对象的大小。
定义1(基于比较的排序)
给定一个包含n个对象的待排序对象a1,a2...an。假设我们知道如何比较其中任意两个对象的大小,那么我们就可以对这列数据进行排序。
基于比较排序必须
相关文章
- 带花树算法学习笔记
- [吴恩达机器学习笔记]16推荐系统3-4协同过滤算法
- 朴素贝叶斯算法简介
- 三维人脸模型贴图算法的研究与仿真
- C#,巴都万数列(Padonve Number)的算法与源代码
- 机器学习笔记之K近邻学习算法
- 机器学习笔记之Sigmoid信念网络(三)KL散度角度观察醒眠算法
- 机器学习笔记之线性分类——感知机算法
- 字节算法大佬亲撰 30W 字数据算法笔记
- 《数据挖掘:理论与算法》学习笔记(十一)—集成学习
- 《数据挖掘:理论与算法》学习笔记(四)—贝叶斯分类
- 软件项目技术点(1)——Tween算法及缓动效果
- C++中全排列算法函数next_permutation的使用方法
- 《数据结构与算法 C语言版》—— 3.5典型例题
- 【转载】 拒绝遗忘:高效的动态规划算法 —— “到底什么是动态规划”—— An intro to Algorithms: Dynamic Programming
- 算法复习笔记(六)贪心算法
- 126、【回溯算法】leetcode ——332. 重新安排行程:回溯算法(C++版本)
- 算法基础复盘笔记Day12【贪心算法】—— 区间问题、Huffman树、排序不等式、绝对值不等式、推公式
- 算法基础复盘笔记Day04【数据结构】—— KMP、字典树(Tire)、并查集、堆、哈希表
- 算法基础复盘笔记Day02【算法基础】—— 前缀和与差分、双指针算法、位运算、离散化、区间合并
- 算法基础复盘笔记Day01【算法基础】—— 快速排序、归并排序、二分、高精度
- Andrew Ng机器学习笔记+Weka相关算法实现(四)SVM和原始对偶问题
- 算法-排序算法
- 人工智能算法模型--Minimax(极大极小)搜索算法学习笔记
- Unity笔记-33-AStarPathFinding算法