码迷,mamicode.com
首页 >  
搜索关键字:归并排序 二分查找    ( 5560个结果
归并排序(merge-sort)
一,归并排序 归并排序是建立在归并操作上的一种排序算法,它采用了分治法的思想,是一种稳定的排序算法,而且归并排序的速度仅次于快速排序。时间复杂度:O(n*logn),最坏的情况:O(n*logn),空间复杂度:O(n)。从数据就可以看出:归并排序比快速排序快很多,同样为稳定排序。 ...
分类:其他好文   时间:2014-07-05 11:16:20    阅读次数:208
若干排序算法简单汇总(二)
上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程。如果一个序列本来就是有序的,对它排序的时间复杂度是O(n)。所以当序列基本有序时,插入排序排序的效率大提高,因为减少了移动的动作。 另外,接插入排序还有一个特点,当n比较小时,它的效率比较高。...
分类:其他好文   时间:2014-07-04 08:54:11    阅读次数:302
查找系列之简述顺序查找和二分查找
顺序查找和二分查找 一、顺序查找思想        1、 从表的一端开始扫描,顺序扫描线性表,依次扫描到的结点关键字与给定的值K相比较.如果当前扫描到的结点的关键字与给定的值K相等,则查找成功;若扫描结束后,仍未找到关键字与给定的值K相等,则查找失败;      2、顺序查找既适用于顺序存储结构,也适用于线性表的链式存储结构;      3、ASL= (n+1)/2为其平均查找长度...
分类:其他好文   时间:2014-07-04 08:49:02    阅读次数:230
数据结构之AVL树
在前面的博文中,我们已经介绍了数据结构之二分查找树的相关知识,二分查找的提出主要是为了提高数据的查找效率。同一个元素集合可以对应不同的二分查找树BST,二分查找树的形态依赖于元素的插入顺序。同时我们也已经知道,如果将一个有序的数据集依次插入到二查找树中,此时二分查找树将退化为线性表,此时查找的时间复杂度为o(n)。为了防止这一问题的出现,便有了平衡二叉树AVL的存在价值。平衡二叉树从根本上将是为了防止出现斜二叉树的出现,从而进一步提高元素的查找效率,保证元素查找的时间复杂度为o(logn),显然,平衡二叉树...
分类:其他好文   时间:2014-07-04 08:04:40    阅读次数:1711
编程算法 - 数组中的逆序对 代码(C)
数组中的逆序对 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 在数组中的两个数字如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对.输入一个数组, 求出这个数组中的逆序对的总数.使用归并排序的方法, 辅助空间一个排序的数组, 依次比较前面较大的数字, 算出整体的逆序对数, 不用逐个比较.时间复杂度: O(nlogn)代码:/* * ...
分类:其他好文   时间:2014-07-04 00:27:34    阅读次数:329
二分练习--我真的会二分吗
二分查找...
分类:其他好文   时间:2014-07-03 16:24:11    阅读次数:213
数据结构之二分查找树总结
二分查找树(也叫二叉查找树、二叉排序树)的提出是为了提供查找效率,之所以称为二分查找树,因为该二叉树对应着二分查找算法,查找平均的时间复杂度为o(logn),所以该数据结构的提出是为了提高查找效率。...
分类:其他好文   时间:2014-07-03 15:43:16    阅读次数:286
NOJ---1567---二分查找
这题我的代码 还没有在OJ上提交 因为 我们的Oj 又崩溃了=-= touch me=他好了 就去交了 但应该是对的了 因为 大神帮我解决了那个死循环问题l = mid+1 与 l = mid在某种严格意义上来说还是不同的 当我的条件是---mid = (l+r)/2 那么它是偏向L的 写法就应该....
分类:其他好文   时间:2014-07-02 18:21:55    阅读次数:301
LeetCode: Sort List [148]
【题目】 Sort a linked list in O(n log n) time using constant space complexity. 【题意】 排序一个链表,要求时间复杂度O(nlogn),使用常量空间 【思路】 nlogn的复杂度,用归并排序求解...
分类:其他好文   时间:2014-07-02 09:25:40    阅读次数:252
归并排序
void merge_array(int list1,int list1_size,int list2,int list2_size) { int i,j,k; i=j=k=0; //声明临时数组用暂存归并结果 int list[list1_size + list2_size]; while(i < list1_size && j < l...
分类:其他好文   时间:2014-07-02 09:13:46    阅读次数:213
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!