
数据结构与算法
shentan_zone
这个作者很懒,什么都没留下…
展开
-
递归和非递归的方法往二叉排序树中插入新的节点
文章来源// 二叉树的建立.cpp : 定义控制台应用程序的入口点。//#include using namespace std;//定义二叉排序树的节点typedef struct Node{ int data; struct Node * lchild;//左孩子 struct Node * rchild;//右孩子}Node,* PNode;转载 2014-09-22 22:11:40 · 2272 阅读 · 0 评论 -
最长公共重复不重复子串系列问题
最长公共重复不重复子串系列问题 1.求一个字符串中连续出现的次数最多的子串例如字符串“abababc”,最多连续出现的为ab,连续出现三次。http://blog.youkuaiyun.com/ysu108/article/details/7795479分析:后缀数组arr[i= 0àstrlen(s) -1]abababcbababcababcbabcabcb转载 2014-09-06 18:18:40 · 1051 阅读 · 0 评论 -
算法问题分类---Top-K问题与多路归并排序
算法问题分类---Top-K问题与多路归并排序原创 2014-09-06 11:54:14 · 13517 阅读 · 2 评论 -
排列组合递归和非递归算法总结篇
排列组合递归和非递归算法总结篇原创 2014-09-04 23:05:05 · 5489 阅读 · 0 评论 -
时间复杂度为O(n),空间复杂度为O(1)
1.字符串左移,void*pszStringRotate(char *pszString, intnCharsRotate),比如 ABCDEFG,移3 位变 DEFGABC,要求空间复杂度 O(1),时间复杂度 O(n)(分析:分析与解法假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位,比较之后,不难看出,其中有两段的顺序是不变的:1234和原创 2014-09-02 17:05:51 · 10774 阅读 · 0 评论 -
算法问题分类---整数和问题系列总结
子数组和,K sum,子集和,最大和原创 2014-09-02 16:39:39 · 1593 阅读 · 0 评论 -
笨笨熊搬家交通篇
笨笨熊要搬家,它现在的家在B点,新的豪宅在H点,现在要从B点到H点。原创 2014-08-28 23:04:09 · 1993 阅读 · 0 评论 -
找零问题
为找零问题 设计一种动态规划算法:给定金额n以及各种面额d1,d2,...,dm的数量无限的硬币,求总金额等于n的硬币的最少个数,或者指出该问题无解。原创 2014-08-18 22:11:48 · 5578 阅读 · 0 评论 -
算法练习(分治法,分区思想)
GetMaxMin.h#ifndef _GETMAXMIN_H_#define _GETMAXMIN_H////Demo1struct MaxMin{ int min; int max;};MaxMin GetMaxMin(int *arr,int beg,int end){ MaxMin maxmin,maxmin1,maxmin2; int mid; if(be原创 2014-08-18 20:54:50 · 1003 阅读 · 0 评论 -
求数组中逆序对的个数
考虑一下,逆序是说a[i]>a[j],i正序”过程。 一个比较好的思路是利用分治的思想:先求前面一半数组的逆序数,再求后面一半数组的逆序数,然后求前面一半数组比后面一半数组中大的数的个数(也就是逆序数),这三个过程加起来就是整体的逆序数目了。看这个描述,是不是有点像归并排序呢?归并排序的思想就是把前一段排序,后一段排序,然后再整体排序。而且,归并排序的规程中,需要判断前一半数组和转载 2014-08-18 11:22:00 · 1201 阅读 · 0 评论 -
stl sort demo
#ifndef FILENAMESORT_H_#define FILENAMESORT_H_#include #include #include #include using namespace std;const int MAXFILENUM = 100;// 定义一个结构体来表示文件, a 代表文件名, b 代表文件类型(要么 "File" 要么 "Dir" )type原创 2014-08-11 16:26:20 · 621 阅读 · 0 评论 -
从N个整数中找了(n-1)个元素乘积最大的那一组
给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组。转载 2014-07-06 22:45:27 · 2217 阅读 · 0 评论 -
2-36进制的 两个数相加
2-36进制的 两个数相加 数的长度可以无限制 问题来源:华为编程大赛 二师弟的星际加法输入:N 进制数str1 第一个数字字符串str2 第二个数字字符串输出:str1和str2按照N进制相加的数字字符串结果原创 2014-05-10 19:45:14 · 3950 阅读 · 0 评论 -
带头结点的单链表( 冒泡排序 一次遍历求中间结点的值) 链表 就地反转 倒数第k个结点
Source Code:#include using namespace std;typedef struct student{ int num; struct student *next;}node;node *create(){//with head node node *head,*p,*s;//head -->head p-->end s -->m原创 2014-04-14 22:06:32 · 1218 阅读 · 0 评论 -
求无序数组中第二小的元素
一次遍历求无序数组(数组中每个元素都是唯一的)中第二小的元素:(暂时还没有考虑数组元素存在重复的情况。。。)#include using namespace std;int main(){ int *a; int n; int first,second,i; cout2):"; cin>>n; cout<<"Input "<<n<<" integer numbers原创 2013-10-22 10:10:55 · 1681 阅读 · 0 评论