每天来点算法_2

来源:互联网 发布:java服务器高级编程 编辑:程序博客网 时间:2024/05/13 09:22

算法1中的排序都是通过关键值比较来实现的。该方式实现的排序的下界是nlgn。要想突破该下界,则需要通过其他途径来实现,避免关键值比较。其中线性时间排序法就是其中一种方式。

计数排序

主要过程:对于每一个输入值,确定小于该值的元素数目。

缺点:要求输入值范围是一个有界的区间。排序之后输出是在另外一个数组,占用的存储空间较大。

时间复杂度:O(n)

主要应用:基数排序。基数排序是早时卡片机中使用的算法。

桶排序

主要过程:把区间[0,1)划分成n个相同大小的子区间。然后将n个输入数分布到各个桶中。在排序过程中,对于落入同一个桶的数据要用其他排序算法(如插入排序)来确定他们的前后顺序。

缺点:输入数据区间有要求。

时间复杂度:在各个桶尺寸的平方和和总的元素数呈线性关系时,复杂度为O(n)

中位数的选择

分开确定最大值和最小值都需要比较(n-1)次。同时需要求出最大值和最小值,只需要比较3[n/2]([n]表示不大于n的最大整数)次。

中位数的确定:

以期望为线性时间做选择(实际中采用较多)

主要思想:采用分治的思想。使用的思想与快速排序类似。

时间复杂度:最坏情况下为O(n*n),平均情况下为O(n)。

最坏情况下为线性时间的选择(理论上,实际较少)

主要过程:跟以期望为线性时间的选择算法一样,运用了快速排序算法的确定性划分方法。

时间复杂度:最坏情况为O(n)。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 荣耀6 无限重启怎么办 手机进水无法开机了怎么办 华为手机不停重启怎么办 华为手机反复重启怎么办 酷派电池不耐用怎么办 美图手机充电慢怎么办 酷派b770太卡怎么办 酷派手机出现无命令怎么办 华为荣耀4x卡怎么办 华为手机图案解锁忘了怎么办 xp电脑读不起u盘怎么办 在外国玩王者卡怎么办 华为p7忘记解锁密码怎么办 华为荣耀4x存储空间不足怎么办 红米4a内存不够怎么办 华为h60开不了机怎么办 华为荣耀4c内存不足怎么办 华为4c运行内存不足怎么办 华为手机总是显示内存不足怎么办 华为荣耀4x畅玩版内存不足怎么办 三星手机忘了解锁密码怎么办 荣耀8密码忘了怎么办 华为4x开不了机怎么办 华为指纹和密码解锁解不开怎么办 华为荣耀5x死机怎么办 华为荣耀开不了机怎么办 荣耀10开不了机怎么办 乐视pro3变砖了怎么办 手机升级后开不了机怎么办 华为g750开不了机怎么办 手机变砖怎么办插电没反应 变砖手机不通电怎么办 小米手机充电口坏了怎么办 小米2s尾插坏了怎么办 小米手机充电插口坏了怎么办 一条网线上两个亚马逊账号怎么办 加拿大28输20万怎么办 买家账户被亚马逊关闭余额怎么办 京东自营物流慢怎么办 京东退货不给退怎么办 刚付款不想要了怎么办