
算法
sunxiaohang7
喜欢开源,学习,交流进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
共享数组原地逆置
偶然在一本书上看到这样一道题觉得听一意思的就拿来做了一下,题目是这样设置的 在已知一维数组A[m+n]中一次存放两个线性表(a1,a2,a3,a4…am),(b1,b2,b3…bn),试写出一个函数将两个顺序表位置互换,即由(a,1,a2,a3,a4...am,b1,b2,b3...bn)转换成(b1,b2,b3...bn,a,1,a2,a3,a4...am)要求空间复杂度为O(1)想必这种题会原创 2018-01-14 15:31:15 · 377 阅读 · 0 评论 -
迷宫求解算法(Java)
迷宫求解算法一直是算法学习的经典,实现自然也是多种多样,包括动态规划,递归等实现,这里我们使用穷举求解,加深对栈的理解和应用定义Position类用于存储坐标点 起点坐标为(1,1),终点坐标为(8,8) 地图打印在最下面class Position { private int px; private int py; public Posit原创 2018-01-14 15:32:57 · 1752 阅读 · 0 评论 -
数据结构之二叉树(java)
二叉树是数据结构中很重要的结构类型,学习数据结构也是深入学习编程的必由之路,这里我们简单介绍下我对于二叉树的理解,水平有限,如有错误还请不吝赐教。首先照例定义一个二叉树的节点类class Node { private int value;//二叉树的值 private Node leftChild;//左孩子节点 private Node rightC原创 2018-01-14 15:37:27 · 228 阅读 · 0 评论 -
最大子序列和问题(C)
最大子序列和(maxSubSeqSum)时间复杂度:T(N)=O(N3)int MaxSubSeqSum(int arrays[],int length){ int i,j,k,thisSum=0,maxSum=0; for(i=0;ilength;i++){ for(j=i;jlength;j++){ thisSum=0;原创 2018-01-14 15:39:58 · 270 阅读 · 0 评论 -
线性表(C)
线性表是最基本、最简单、也是最常用的一种数据结构。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储),但是把最后一个数据元素的尾指针指向了首位结点)。线性表的两种存储方式 - 顺序存储 - 链式存储线性表的顺序存储原创 2018-01-14 15:41:29 · 375 阅读 · 0 评论 -
堆栈(C)
堆栈(顺序存储)数组方式typedef struct{ int Data[MAXSIZE]; int Top;}Stack;void Push(Stack *stack,int value){ if(stack->Top==MAXSIZE-1){//数组有界 printf("堆栈满"); }else{ stack->Dat原创 2018-01-14 15:42:52 · 302 阅读 · 0 评论 -
队列(C)
队列(顺序存储)#define MAXSIZE 50typedef struct { int value[MAXSIZE]; int rear; int front;}Queue;Queue *CreateQueue(){ Queue *queue; queue=(Queue *)malloc(sizeof(Queue)); queue原创 2018-01-14 15:43:58 · 252 阅读 · 0 评论