
Algorithm
文章平均质量分 77
xiaoyun8822
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆排序
定义:堆:堆数据结构是一种数组现象,可以视为一个完全二叉树,树中的每个节点与数组中存放该节点值的那个元素对应;性质: a[parent[i]] >= A[i];(大顶堆) a[parent[i]] 堆的应用:优先级队列;三个常用的操作说明:HeapAdjust:一个已经有序的堆顶点插入一个节点的调整过程;BuildHeap:一个无序数组调整成一个堆;(向上排序)HeapSo原创 2012-08-30 15:58:07 · 364 阅读 · 0 评论 -
数据结构之各种排序的比较
(一)直接插入排序算法简洁,但是只有当待排元素n比较少的时候效率才高所需空间:一个当前元素的哨兵array[0]即可所需时间:主要与所需关键字的比较次数及移动的次数有关最坏的情况——逆序:总的比较次数为n(n-1)/2,记录的移动次数也为n(n-1)/2最好的情况——正序:比较次数为n-1,记录移动次数为0由此可以推断出插入排序算法的平均时间为O(n^2),最坏的情转载 2012-09-02 15:52:03 · 648 阅读 · 0 评论 -
记数排序
1. 计数排序是一种算法复杂度 O(n)的排序方法,适合于小范围集合的排序,且元素为整数;2. 假定数组是A[0…n],还需要一个临时存储区C[0…k],k为最大元素,用来存放对应元素的个数;3. 桶排序:类似记数排序,假设输入是由一个随机过程产生,该过程将元素均匀而独立的分布在区间[0,1)上,思想就是把区间分为n个大小相同的子区间。#include "原创 2012-09-02 15:51:06 · 377 阅读 · 0 评论 -
哈希表(散列表)
一.基本概念1. 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2. 冲突(碰撞): 对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象原创 2012-09-04 10:03:53 · 832 阅读 · 0 评论 -
二叉排序树
一.二叉排序树二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树:1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3. 它的左、右子树也分别为二叉排序树。1. 二叉树的存储结构typedef struct BiTre{原创 2012-09-05 10:58:25 · 415 阅读 · 0 评论 -
贪心算法
顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。问题一、活动安排问题转载 2012-09-17 10:10:22 · 808 阅读 · 0 评论 -
priority_queue的用法
priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue, 以加深对 priority_queue 的理解?#include转载 2012-09-18 15:24:51 · 417 阅读 · 0 评论