首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
排序算法
柠檬茶味
创建于2022-02-28
订阅专栏
常用的十种排序算法详解
暂无订阅
共10篇文章
创建于2022-02-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
排序算法专题-基数排序
基数排序也是一种基于桶的排序算法,原理是将整数按位数切割成不同的数字,然后按每个位数分别比较,当所有位比较完成之后,排序完成。 这个算法原理还是很简单的,问题是如何来有效的来实现这个算法。bucket[index].nums.nums.通过简单的分析该代码。可以发现基数排序...
排序算法专题-桶排序
图片来源:桶排序 而后在桶内完成排序,最后将各个桶连接起来,完成排序。该算法很容易理解,但是其高效与否取决于两个部分,一个是映射空间的划定,最好的情况是n个数组均匀的划分到k个桶中,最坏的情况是输入的数组分配到了同一个桶中;第二个是桶内排序算法的选择,本文基于python的内...
排序算法专题-计数排序
计数排序是一种在数值小于100以内十分高效的排序算法,时间复杂度为O(n),原理十分简单,是一个桶的简单运用(后面有机会再详细介绍介绍桶)。比如我们排序元素的数值分布在1-100,那么首先遍历一遍数组,记录1-100每个数值出现的个数,比如1,10,1,12,那么1出现了2次...
排序算法专题-堆排序
堆排序,顾名思义,就是一种基于堆这种数据结构来实现排序的一种算法,那么何谓堆呢?简单点说,堆是一个近似完全二叉树的结构,同时满足即子结点的键值或索引总是小于(或者大于)它的父节点,由此而生,堆分为两种,分别是小顶堆和大顶堆。大顶堆:每个节点的值都大于或等于其子节点的值,在堆排...
排序算法专题-快速排序
快速排序是冒泡排序算法基础上改进的进阶版排序算法,他使用分治法把一个序列基于一个基准分成两个子序列,比如left均小于基准,right均大于基准,通过再次选择基准对left和right序列进行递归的划分,直到划分的数组长度为1或者0,由于划分依据是在序列中选择一个基准,即每次...
排序算法专题-归并排序
归并排序是一种十分经典的冲破O(n2)时间复杂度的排序算法,该算法是基于分治的思想,讲解算法原理之前,先看一下下面这张图。图片来源:【算法】排序算法之归并排序 上图就是归并算法的一个简单示例。该算法就是每次将数组递归拆解为两部分,直到所有部分包含元素为1,之后递归的将各个...
排序算法专题-希尔排序
希尔排序也叫递减增量排序,是第一批冲破O(n2)的算法之一,他的算法思想很简单,首先拟定一个增量gap,一般是从len(nums)//3或者len(nums)//2开始,然后对序列nums[i,i+gap,i+gap*k…]进行插入排序,一轮迭代完成后gap=gap//2,知...
排序算法专题-插入排序
插入排序是一种在原理上十分简单的算法,就跟打扑克牌一样,握在手里的是有序数列,每获得一张新牌,就插入有序数列中合适的位置。算法步骤:1:将数组第一个元素是为有序数列,第二个元素即之后的所有元素为未排序数列2:从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置...
排序算法专题-选择排序
选择排序是一种思想时分简单的算法,其原理是每次都在未排序数组中找到最小(最大)的元素,放到已排序序列的尾部。算法解析:选择排序的迭代次数也是固定的,对于有序数列,其迭代次数和比较次数不变,因此适用于小规模的数据排序。由于该算法是在原数组上进行交换操作,没有产生新的空间消耗,因...
排序算法专题-概览
排序算法是很多算法的基础,尤其是目前最为热门的搜索、推荐系统中,良好的排序可以极大的促进搜索效率,目前市场上各种各样的算法都是基于下述的十大经典排序算法。 总的来说,排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次...