随笔分类 -  算法、数据结构

摘要:归并排序仍然是利用完全二叉树实现,它是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 基本过程:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并 阅读全文
posted @ 2016-12-07 20:40 webber_liu 阅读(5015) 评论(0) 推荐(0) 编辑
摘要:堆排序是对选择排序的一种优化算法,都属于选择排序类。 基本过程:堆是一种完全二叉树,是一种树形选择结构,将待排序的序列构造成一个大顶堆(即每个节点的值都大于或等于其左右孩子节点的值),然后将堆顶的根节点移走,与堆数组的末尾元素交换,此时末尾元素就是最大值。再将剩余的n-1个序列重新构造一个堆,得到次 阅读全文
posted @ 2016-12-07 13:31 webber_liu 阅读(423) 评论(0) 推荐(0) 编辑
摘要:快速排序是对“冒泡排序”的优化算法,都属于交换排序类。 描述:它通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个过程递归进行,以此使得整个数据变成有序序列。 值得注意:目前C++,java,PHP,JS 阅读全文
posted @ 2016-12-06 14:40 webber_liu 阅读(257) 评论(0) 推荐(0) 编辑
摘要:一、list的基本实现技术 在数据结构中,如果用python实现线性表,无疑要提到list,list是一种元素个数可变的线性表(而tuple是不变的表,不支持改变其内部状态的任何操作,其他与list性质类似),采用分离式技术实现的动态顺序表,表中元素保存在一块连续存储区内。实现约束有如下两点: 1、 阅读全文
posted @ 2016-11-13 14:00 webber_liu 阅读(473) 评论(0) 推荐(0) 编辑
摘要:以下是八大排序的python实现,供以后参考,日后扩展 一、插入排序 二、希尔排序 三、冒泡排序 四、直接选择排序 五、快速排序 六、堆排序 七、归并排序 八、基数排序 下面附一下各个排序算法的时间复杂度以及稳定性比较: 排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 O(n^2 阅读全文
posted @ 2016-04-12 21:43 webber_liu 阅读(238) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示