
基础算法
v_xchen_v
这个作者很懒,什么都没留下…
展开
-
简单排序(冒泡排序、简单选择排序、插入排序)
插入排序:每趟将一个待排元素插入有序区的合适位置分类时间复杂度空间复杂度稳定性算法描述直接插入排序最好O(n) 最坏O(n^2) 平均O(n^2)O(1)需要一个监视哨稳定直接插入排序所产生的有序区不一定是全局有序的每一趟不一定将一个元素放在最终位置上插入排序效率与待排序数据的顺序有关,当正序时效率最高原创 2016-03-30 16:38:09 · 820 阅读 · 0 评论 -
顺序查找
顺序查找适用于顺序存储和链式存储的数据。成功的情况下:(n+1)/2失败的情况下:n平均时间复杂度:O(n)过程描述:从表的一端开始,顺序扫描线型表,依次将扫描到的关键字与给定的关键字k进行比较,如果想等,则查找成功;如果不想等,则继续扫描,若扫描结束后,仍未找到关键字等于k的记录,则查找失败。原创 2016-03-30 15:36:43 · 575 阅读 · 0 评论 -
二分查找
折半查找,又叫二分查找要求顺序存储结构且要求元素按关键字有序排列时间复杂度O(log2n)成功的情况下:查找过程走了一条从判定树的根到被查记录的路径,比较的次数恰为记录在树中的层数。失败的情况下:查找过程经过了从判定树的根到某个外部节点的路径,所需比较次数不超过判定树的高度。过程描述:首先,用要查找的关键字k与中间位置的节点的关键字相比较,这个中间记录将这个表分为了两个子表原创 2016-03-30 15:31:13 · 2318 阅读 · 0 评论 -
单链表的就地逆置
单链表的就地逆置是指辅助空间O(1)的逆置方法,有两种方法:普通循环(头插法重新建立带头节点的新链表)和递归。下面我们详细介绍这两种方法:方法一:头插法算法思想:逆置链表初始为空,表中节点从原链表中依次“删除”,再逐个插入逆置链表的表头(即“头插”到逆置链表中),使它成为逆置链表的“新”的第一个结点,如此循环,直至原链表为空。void converse(LinkList *head){ Lin...原创 2016-11-07 17:05:54 · 99558 阅读 · 68 评论