数据结构和算法
学无止境-一只快乐的程序猿
这个作者很懒,什么都没留下…
展开
-
查找变位词
问题: 如何在字典中查找一个单词的兄弟字符串(变位词)? 这里我提供了下面的思路,并没有真正编写程序,分析是可行的。 思路如下: 1.遍历字典中的单词,进行身份标识,标识应按照字母顺序标识。如bbaafc->a2b2cf 我的建议是如果字典不太大的情况,可以在内存中做个散列表,将标识作为key,同一标识 (同位词)的单词放在对应的List中,这样同位词都在一个List中原创 2016-08-29 09:39:17 · 1849 阅读 · 0 评论 -
最短路径、最小生成算法
这个页面的数据结构和算法介绍的不错。 尤其是: 1.最短路径算法(迪杰斯特拉和弗洛伊德(Floyd)算法) 2.最小生成树算法(Prim算法和Kruskal克鲁斯卡尔算法) http://www.cnblogs.com/skywang12345/category/508186.html转载 2016-12-11 19:51:05 · 2117 阅读 · 0 评论 -
二叉树深度与高度的区别
http://blog.csdn.net/fanpei_moukoy/article/details/23828603转载 2016-11-02 10:23:28 · 10380 阅读 · 0 评论 -
选择排序
public class 选择排序 { /** * 选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。 * 之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。 * 相比于插入排序的固定元素找位置,是两种思维方式。不过条条大路通罗马,两者的目的是一样的。 * @原创 2016-11-04 10:46:49 · 390 阅读 · 0 评论 -
冒泡排序
public class 冒泡排序 { /* * 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 * 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 * 冒泡排序算法的运作如下: * 比较相邻转载 2016-11-04 10:45:22 · 299 阅读 · 0 评论 -
插入排序
转自:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html public class 插入排序 { /** * 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 * 插入排序方法分直接插入排序和折半插入排序两种。 * @param array */ public转载 2016-11-03 22:06:36 · 234 阅读 · 0 评论 -
排序算法比较
转载 2016-11-03 21:20:20 · 226 阅读 · 0 评论 -
快速排序
思路可参考:http://developer.51cto.com/art/201403/430986.htm 下面是我的JAVA实现: package com.mtt.sort; public class 快速排序 { /** * 快速排序思路:http://developer.51cto.com/art/201403/430986.htm */ public static v转载 2016-11-03 20:53:00 · 325 阅读 · 0 评论 -
寻找和为定值的多个数
题目: 输入两个整数n和sum,要求从数列1,2,3。。。n中随意取值,使得他们的和等于sum,列出所有的组合的可能情况 解法一: 次类问题可以将n问题转化为n-1问题,递归即可: (1)sum不包含n的情况,即sum 和 n-1 (2)sum包含n的情况,即sum-n,和n-1 代码如下: void sumOfNums(int sum, int n, l原创 2016-09-05 22:27:52 · 348 阅读 · 0 评论 -
字符串包含算法
题目如下: 给定一个长字符串a和短字符串b,如何判断短字符串b中所有字符的是否都在长字符串a中? 方法如下: 1.简单粗暴的方法-蛮力轮询【不推荐】 思路:遍历字符串b中的每一个字符,判断该字符是否在字符串a中。 时间复杂度:O(nm) 其中n为a的长度,m为b的长度 2.排序后轮询 思路:先对字符串a和字符串b进行排序,然后再对两个字符串依次轮询。 时间复杂度:排原创 2016-08-25 10:47:08 · 1861 阅读 · 0 评论 -
算法-字符串旋转
字符串旋转:(例如 I am a student! 旋转为 student! a am I) 三步反转法 1.JAVA版 2.C++版原创 2016-08-23 17:56:43 · 431 阅读 · 0 评论 -
JAVA 排序算法汇总
快速排序 插入排序 堆排序 选择排序 冒泡排序 归并排序原创 2017-09-20 21:25:46 · 180 阅读 · 0 评论