每天来点算法_1

归并排序:

主要过程:将两个排好序的数组(具体数据结构视实际情况而定)合并成从大到小的数组。

缺点:不是在数组自身存储空间进行操作。

时间复杂度:O(nlgn)

插入排序:

主要过程:当前的关键字与前面的关键字进行比较,插入到合适的地方。

时间复杂度:O(n*n)

冒泡排序:

主要过程:相邻之间的关键字进行大小比对和交换。如果从尾部开始比较交换,则"冒泡"就更加形象了。

时间复杂度:O(n*n)

堆排序:

堆的概念:堆换一种说法是完全二叉树,是一种重要的数据结构。堆可分为最大堆和最小堆。其中优先级队列就用到了堆的概念和技术。

主要过程:父节点大于左右子节点,即父节点的关键字是最大的。根节点和最后的叶节点进行交换,则最后的叶节点的关键字是最大(小)的,然后剔除最后的叶节点,对以根节点(数值变换过)为中心对堆进行重新排序。

复杂度:O(nlgn)

快速排序:

主要过程:在子组中随机选择一个数作为分离该子组的基准,然后将小于该基准值的关键字集中到该基准的左边,大于该基准值的关键字集中到该基准的右边。接下来就是递归调用的问题了。

最差复杂度:O(n*n)(可通过随机化输入分布来避免)

平均复杂度:O(nlgn)(系数较小,所以该算法在排序中使用率较高)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值