数据结构算法
极光默尘
泪水和汗水的化学成分相似但前者只能为你换来同情后者却可以为你赢得成功
展开
-
数据结构练习--单向链表的实现
自己学习数据结构,写的第一个单向链表,水平真是差的要命,查了那么多相关的构造方法,不断的改,才实现这么个一个拙漏的一个方法,看来还得是自己慢慢学习,这个就当作一个成果吧,一点一点努力#includeusing namespace std;templateclass Node{public:T data;Node *next;};templatec原创 2013-03-23 22:12:48 · 1311 阅读 · 0 评论 -
快速排序
代码一.霍尔快排:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263转载 2013-05-02 20:27:46 · 546 阅读 · 0 评论 -
归并排序
Mark Allen Weiss的数据结构预算法分析,思路很清晰,用C++实现#include #includeusing namespace std;class MS{public:void mergesort(vector&a,vector&tmpArray,int left,int right);void mergeSort(vector&a);void原创 2013-05-02 14:17:12 · 502 阅读 · 0 评论 -
堆排序
#include using namespace std;void PrintArray(int data[],int size){for(int i=1;icoutcout};void MaxHeapify(int *a,int i,int size){int lt=2*i,rt=2*i+1;int largest;if(lta[i])larg原创 2013-05-01 23:52:31 · 514 阅读 · 0 评论 -
希尔排序实现
刚刚看了希尔排序的方法,然后就着书上的例程写了这个C++版的实现,目的是理解并消化这个排序的方法和思想#include #include using namespace std;void shellsort(vector &a){int j;for(int increment=a.size()/2;increment>0;increment/=2)for(int原创 2013-04-29 23:40:03 · 535 阅读 · 0 评论 -
插入排序的实现
继续每天抽时间看数据结构与算法,今天开始看第7章,排序这一章,应该是很多面试题和应用中用到的基础,所以看的要细一些,不过刚开始看插入排序就自己马大哈的疏忽了一个地方,导致程序写了半天才弄出来,还是手生的事,还得慢慢来#includeusing namespace std;void insert_Sort(vector &a){ int j;for(int p=1;p原创 2013-04-29 20:05:45 · 546 阅读 · 0 评论 -
算法时间复杂度分析
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。 求解算法的时间复杂度的具体步骤是:[1] 找出算法中的基本语句:算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。[2] 计算基本语句的执行次数的数量级:这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可转载 2013-04-28 14:35:37 · 564 阅读 · 0 评论 -
二叉堆的实现
#include #include #define MAX_HEAP_SIZE 101 class BinaryMinHeap { public: BinaryMinHeap(int *heapArray); BinaryMinHeap(int size); ~BinaryMinHeap() {转载 2013-04-28 19:09:52 · 657 阅读 · 0 评论 -
递归实现二叉查找树 C++
把这些都写到博客中不是为了其他的目的,只是为了以后找工作的时候能提前看看复习一下,脑子里好有一些印象。#include using namespace std;templateclass TreeNode{public:TreeNode():lson(NULL),rson(NULL),freq(1){}T data;unsigned int freq;T转载 2013-04-14 17:13:36 · 576 阅读 · 0 评论 -
数组求和问题
复杂度O(n) #include int MaxSeqSum(const int A[],int N){ int s1,s2,j; s1 = s2 = 0; for(j = 0;j { s1 += A[j]; if(s1 > s2)转载 2013-04-12 22:37:49 · 671 阅读 · 0 评论 -
数据结构之线性表——倒数第k个结点
题目:已知一个带有头结点的单链表,结点结构为:datalink在不改变链表的情况下,设计一个尽可能高效的算法,查找链表中倒数第k个结点,若查找成功,输出该结点data的值,并返回1,否则返回0.分析:本题的关键是设计一个尽可能高效的算法,通过链表的一遍遍历,找到倒数第k个结点的位置。基本思想:定义两个指针变转载 2013-04-12 23:37:50 · 752 阅读 · 0 评论 -
判断一个数是否为素数
整数 m是素数的条件: 除 1 和 m外,没有其它因数。#include using namespace std;#include int main(){ long m; cout cin >> m ; double sqrtm = sqrt(m) ; //函数sqrt是double类型转载 2013-04-12 23:22:00 · 709 阅读 · 0 评论 -
约瑟夫 C++
#include using namespace std;class Node{public:int data;Node *next;Node(){data=0;next=NULL;}};void Josephus(int n,int k,int m){ if(nreturn ; Node *pnode,*prenode,*cur原创 2013-04-05 16:19:07 · 790 阅读 · 0 评论 -
简单的链表反转 C++
#include using namespace std;class Node{public:int data;Node *next;};class Mylist{private:Node *head;Node *curr;int length;public:Mylist();~Mylist();void create(int v原创 2013-04-06 00:21:37 · 514 阅读 · 0 评论 -
C++链表应用:多项式相加
#include using namespace std;class poly{public:int coeff;int pow;poly*next;};class add2poly{private:poly *poly1,*poly2,*poly3;public:add2poly();void addpoly();void原创 2013-03-28 21:40:26 · 1204 阅读 · 0 评论 -
数据结构练习--双向链表的实现
自上次实现单向链表之后,开始看双向链表,无非就是增加了一个逆序的节点,这次编程比上次能严禁和结构清晰一些,也是慢慢编程应该培养的东西#includeusing namespace std;templateclass Node{public:T data;Node*next;Node*prior;};templateclass myslist{原创 2013-03-27 16:09:19 · 516 阅读 · 0 评论 -
数据结构 栈的链表实现法
#include using namespace std;templateclass stackNode{public:T data;stackNode* next;};templateclass mystack{private:unsigned int stacklength;stackNode *node;stackNode *hea原创 2013-03-31 16:01:56 · 465 阅读 · 0 评论 -
数据结构---队列的链表实现
#include using namespace std;templateclass queueNode{public:T data;queueNode* next;};templateclass myqueue{private:unsigned int queuelength;queueNode* node;queueNode* fr转载 2013-04-02 14:48:52 · 427 阅读 · 0 评论 -
计数排序
终于搞懂技术排序了,看了大牛的博客和公开课后,终于明白了#include using namespace std;// arr--初始输入数组, res--存放排序结果的数组,hash临时存储区[0...k]int arr[100], res[100], hash[100];int len, k = -1;void PrintHash(){ cout <<转载 2013-09-28 20:39:21 · 499 阅读 · 0 评论