数据结构与算法
esc_ai
这个作者很懒,什么都没留下…
展开
-
[数据结构]栈的基本操作
栈的基本操作原创 2015-11-23 08:42:56 · 5386 阅读 · 0 评论 -
字典序算法与全排列问题(时间复杂度O(N))
给定一个不重复数组组成的数组,比如{1,2,3},按照从小到大的顺序组成的全排列整数有6个:123、132、213、231、312、321,这6个数字都是换位数,即组成的数字一样,只是位置不一样而已。一、最近最大换位数首先解决第一个问题,如何找到给定整数,离它最近且比它大的换位数。比如:12534的最近最大换位数是12543,13254的最近最大换位数是13425。为了和原数接近,...原创 2018-04-10 13:07:35 · 6971 阅读 · 0 评论 -
【死磕算法系列】二叉树的前序中序后序的递归和非递归遍历
一、二叉树的数据结构1.1 定义树节点public class TreeNode { String val; TreeNode left; TreeNode right; public TreeNode(String val) { this.val = val; } public String getVal() {...原创 2017-12-24 01:22:54 · 430 阅读 · 0 评论 -
【死磕算法系列】二叉树的层次遍历
a / \ b c / \ / \ d e f g / h \ i对于上面的二叉树,层次遍历结果为:ab cd e f ghi...原创 2017-12-24 16:53:14 · 449 阅读 · 0 评论 -
【死磕算法系列】二叉树的深度
一、递归实现public void treeDepth(TreeNode node){ if(node == null){ return 0; } int leftDepth=treeDepth(node.left); int rightDepth=treeDepth(node.right); return leftDepth>rightDep...原创 2017-12-24 13:36:23 · 460 阅读 · 0 评论 -
LeetCode Array
LeetCode数组习题26.Remove Duplicates from Sorted Array题目描述:Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra spac原创 2017-06-16 00:58:57 · 911 阅读 · 0 评论 -
归并排序
归并排序c++ 代码原创 2015-12-23 20:12:05 · 1039 阅读 · 0 评论 -
[数据结构]合并有序数组
合并有序数组原创 2015-12-01 16:02:39 · 1490 阅读 · 0 评论 -
协同过滤推荐算法
简单的理解协同过滤: 相似兴趣爱好的人喜欢相似的东西,具有相似属性的物品可以推荐给喜欢同类物品的人。比如,user A喜欢武侠片,user B也喜欢武侠片,那么可以把A喜欢而B没看过的武侠片推荐给B,反之亦然,这种模式称为基于用户的协同过滤推荐(User-User Collaborative Filtering Recommendation);再比如User A买了《java 核心技术卷一》,那么可原创 2015-12-31 16:19:08 · 2798 阅读 · 0 评论 -
[数据结构]约瑟夫环问题
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。原创 2015-11-22 23:19:34 · 5830 阅读 · 0 评论 -
[数据结构]队列的基本操作
栈是先进后出,队列则是先进先出.下面贴一下队列的基本操作.1.队列的顺序表示.1.1队列的结构体定义原创 2015-12-01 09:23:03 · 3449 阅读 · 0 评论 -
[数据结构]折半搜索、归并排序( 分治思想)
折半搜索是分治算法思想的一典型例子,要解决输入规模很大的问题时可以将该问题分解,得到k个不同的可独立求解的子问题,求出字问题的解之后再用合适的方法合并求出整个问题的解。将整个问题分解成若干小问题来处理的方法称为分治法.比如:找一个学校里身高最高的同学,可以现在每个班找出最高的,把每个班里最高的汇合在一起,找出全校最高的。原创 2015-12-01 11:24:51 · 1359 阅读 · 0 评论 -
[数据结构]二分插入排序
二分插入排序是对二分查找和插入排序的一个结合,插入操作时通过二分查找找到要插入的位置.原创 2015-12-01 21:19:44 · 1390 阅读 · 0 评论 -
[数据结构]双机调度问题
双机调度问题解法:1.问题描述双机调度问题,又称独立任务最优调度:用两台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是a[i],若由机器B来处理,则所需要的时间是b[i]。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。研究一个实例:n=6, a = {2,原创 2015-12-12 15:01:47 · 3581 阅读 · 0 评论 -
快速排序
快速排序是分治算法的典型应用,基本策略:将数组A[1..n]分成两个子数组B[1..p]和B[p+1..n],使得B[1..p]中的元素均不大于B[p+1..n]中的元素,然后分别对这两个数组进行排序,最后把两个数组连接起来。原创 2015-12-23 19:43:09 · 930 阅读 · 0 评论 -
[数据结构]基本概念、单链表操作
单链表基本操作原创 2015-08-28 09:12:08 · 1386 阅读 · 0 评论 -
【死磕算法系列】二叉树的镜像
一、二叉树镜像二叉树的镜像就是把每个节点的左子树和右字数互换位置,例如源二叉树为: 8 / \ 6 10 / \ / \ 5 7 9 11其镜像二叉树为: 8 / \ 10 6 /...原创 2017-12-24 02:17:48 · 385 阅读 · 0 评论