
数据结构&算法&逻辑题
Woody891
su
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
子序列和最大问题
求数组中最大连续子序列和。例如给定数组A={4,-3, 5,-2,-1, 2, 6,-2},则最大子序列和为11,即11=4+(-3)+5+(-2)+(-1)+2+6。Java实现代码如下: public class MaxSubSeque { public static void main(String[] args) { int原创 2014-09-11 15:25:02 · 831 阅读 · 0 评论 -
Woody的逻辑游戏--几个天使
问题来了,一个旅行家遇到3个美女,他不知道哪个是天使,哪个是魔鬼。天使常常说真话,而魔鬼只说假话。甲说:在乙和丙之间,至少有一个是天使。乙说:在甲和丙之间,至少有一个是魔鬼。丙说:我告诉你正确的消息吧。你能判断出有几个天使吗? 推理: 如果甲是魔鬼,那么他说的话就是假的,至少有一个是天使反推就是乙和丙都是魔鬼,那么乙是魔鬼,但是乙说甲和丙至少原创 2014-10-24 10:03:54 · 1829 阅读 · 0 评论 -
Woody的逻辑游戏--如何换轮胎
题目:有一个做长途运输的司机要出发了,他用作运输的车是三轮车,轮胎的寿命是2万里,现在他要进行5万里的长途运输,计划用8个轮胎完成运输任务,怎样才能做到呢? 首先将轮胎从1-8依次编号,然后如下所示,求的结果: 1、 先用1、2、3号轮胎跑完1万里,此时1、2、3还各剩1万里可跑;2、 用4、5、6号轮胎跑完2万里,此时一共跑了3万里;3、 然后后面原创 2014-10-23 09:32:05 · 2334 阅读 · 0 评论 -
选择排序之直接选择排序
今天大鹏哥跟大家一起学习下选择排序中的直接选择排序方法。直接选择排序(Straight SelectSort)也是一种简单的排序方法,他的基本思想是:第一次从R[0]-R[n-1]中选取最小值,与R[0]交换,第二次从R[1]-R[n-1]中选取最小值,与R[1]交换,。。。总共通过n-1次交换,得到一个按排序码从大到小排列的有序序列。Java实现代码如下: public cl原创 2014-09-18 11:37:40 · 1084 阅读 · 0 评论 -
交换排序之快速排序
今天大鹏哥跟大家一起学习下交换排序中的快速排序。快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到真个序列有序。快速排序基本步骤: Step1、定义两个变量low和high,他们的初值分别为low和high,此外还有一个变量pivotkey。原创 2014-09-17 16:37:43 · 1140 阅读 · 0 评论 -
插入排序之希尔排序
希尔排序又称“缩小增量排序”。 它的基本思想是:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录”基本有序”时,(当增量为1时)再对记录进行一次直接插入排序。 可以看出希尔排序希尔排序是改进了的插入排序。特点: 子序列的构成不是简单的”逐段分割”,而是将相隔某个”增量”的记录组成一个自序列。这使得希尔排序中原创 2014-09-15 17:48:20 · 1091 阅读 · 0 评论 -
交换排序之冒泡排序
今天大鹏哥跟大家学习下交换排序中的冒泡排序。为什么叫冒泡排序呢,因为在这种排序过程中越大的元素会经由交换慢慢”浮”到数列的顶端,故名冒泡排序。冒泡排序就是把小的元素往前调或者把大的元素往后调。 冒泡排序基本操作: 比较相邻的元素,如果第一个比第二个大,则交换他们两个。 Java实现如下:原创 2014-09-16 16:11:49 · 972 阅读 · 0 评论 -
8大常用排序方法总结图
原创 2014-09-15 15:32:48 · 1034 阅读 · 0 评论 -
分块查找\索引顺序查找
简介:分块查找又称索引顺序查找,它是顺序查找的一种改进方法,性能优于顺序查找。方法描述: 将n个数据元素“按块有序”划分为m块(一般块的长度均匀,最后一块可以不满)(m如下图所示:图示为一个索引顺序表,其中包括三个块,第一个块的其实地址为0,快内最大关键字为25;第二个块的其实地址为5,块内最大关键字为58;第三个块的起始地址为10,块内最大关键字为原创 2014-09-15 11:03:17 · 3600 阅读 · 0 评论 -
插入排序之直接插入排序
今天大鹏哥跟大家一起学习下插入排序中的直接插入排序。直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。 算法描述: Step1、将待排序的一组记录中的第1个记录拿出来作为一组有序的记录(当然此时该组记录仅有1个记录)。 Step2、依次将待排序的一原创 2014-09-15 15:36:27 · 1136 阅读 · 0 评论 -
最大公约数问题
本次呢,大鹏哥跟大家介绍一下面试中经常遇到的一个小问题:最大公约数问题。题目如下: 给出两个正整数A、B,求出这两个正整数的最大公约数。 下面给出Java实现的该问题的解答: public class GCD { /** *原创 2014-09-13 15:31:42 · 1196 阅读 · 0 评论 -
Java 实现二分查找\折半查找
二分查找又称折半查找,优点是比较次数少,查找速度快;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 该算法要求: 1、 必须采用顺序存储结构。 2、 必须按关键字大小有序排列。 该算法时间复杂度最坏为:O(logn) 注意点有mid、low、high原创 2014-09-12 15:44:56 · 1178 阅读 · 0 评论 -
浅谈算法时间复杂度
这次呢,大鹏哥跟大家来谈谈算法的时间复杂度这个东西,通常说到时间复杂度还会想到它的双胞胎兄弟-空间复杂度,下面就先来看一下这两个度的区别:时间复杂度就是度量算法执行的时间长短;空间复杂度就是度量算法所需存储空间的大小。 通常情况下,算法的基本操作重复执行的次数是一个关于n的函数f(n),因此呢算法的时间复杂度记作:T(n)=O(f(n)) 分析:随着n的原创 2014-09-11 15:04:38 · 1147 阅读 · 0 评论 -
2015搜狐新浪校招笔试题-12个物体天平称3次
有12个物体(鸡蛋、铁块等),形状、大小均相同,其中有11个物体重量相同,另外1个与其他不同,现在有一个天平,请你称3次找出不同的一个物体(不同的物体重量是比另外11个轻还是重未知)。 解题: 将12个物体从1-12依次编号。原创 2014-10-15 10:56:27 · 1692 阅读 · 0 评论