数据结构算法
zhengfushijie
这个作者很懒,什么都没留下…
展开
-
计数排序
计数排序是一种算法复杂度 O(n) 的排序方法,适合于小范围集合的排序。比如100万学生参加高考,我们想对这100万学生的数学成绩(假设分数为0到100)做个排序。我们如何设计一个最高效的排序算法。本文不光给出计数排序算法的传统写法,还将一步步深入讨论算法的优化,直到时间复杂度和空间复杂度最优。先看看计数排序的定义Counting sort (sometimes referred to原创 2014-11-06 14:27:33 · 291 阅读 · 0 评论 -
单链表
// LinkList.cpp : 定义控制台应用程序的入口点。//定义的链表不含头结点#include using namespace std;template//定义结点struct Node{ Type data; Node *next;};//定义链表templateclass LinkList{public: LinkList();//默认构造函数原创 2014-10-03 11:10:48 · 297 阅读 · 0 评论 -
线性表顺序存储
线性表的xin#define MaxSize 50typedef struct{ ElemType data[MaxSize]; int length;}原创 2014-09-25 19:58:36 · 398 阅读 · 0 评论 -
horspool算法
代码都经过#include using namespace::std;const int n=26,m=6;void main(){ char T[] = "JIM_SAW_ME_IN_A_BARBERSHOP"; int Table[] = {6,6,6,6,6,4,6,6,6,1,6,6,6,6,4,6,2,4,3,2,1,3,6,6,6原创 2014-08-16 15:30:21 · 864 阅读 · 0 评论 -
二叉查找树(二叉排序树)的详细实现
1、序 详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树3、转载 2014-08-13 22:47:11 · 329 阅读 · 0 评论 -
约瑟夫环
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)原创 2014-11-09 16:53:52 · 338 阅读 · 0 评论 -
数组实现堆排序(c++)
#include #include using namespace std;void swap(int&a,int&b);int max(int &a,int &b);void heap(int a[],int p);const int n =11;void main(){ int n; cout cin>>n; in原创 2014-08-16 08:15:19 · 626 阅读 · 0 评论