zxiaofan.com

Life is all about choices!生命不息,学习不止。By : zxiaofan.com

用栈来求解汉诺塔变形问题

/** * 用栈来求解汉诺塔问题:HanoiStack【3】 * * 【问题描述】:将汉诺塔游戏(小压大)规则修改,不能从左(右)侧的塔直接移到右(左)侧,而是必须经过中间塔。 * * 求当塔有N层时,打印最优移动过程和最优移动步数。如N=2,记上层塔为1,下层为2.则打印:1:le...

2016-01-09 23:54:39

阅读数 1656

评论数 0

由两个栈组成的队列

/** * 由两个栈组成的队列:TwoStackQueue【2】 * * 【编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)】 * * 设计思路:栈-先进后出,队列-先进先出。用两个栈把顺序反过来。 * * stackPush只管进栈,stackP...

2016-01-09 23:51:45

阅读数 1570

评论数 0

设计一个有getMin功能的栈

* 设计一个有getMin功能的栈:StackGetMin【1】. * * 【实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作】 * * 要求:1、pop、push、getMin操作的时间复杂度都是

2016-01-09 23:45:02

阅读数 2134

评论数 0

仅用递归函数和栈逆序一个栈

package stackAndQueue; import java.util.Stack; import org.junit.Test; /** * 仅用递归函数和栈逆序一个栈:ReverseStack【2】 * * 【一个栈依次压入1、2、3,将栈转置,使栈顶到栈底依次是1、2、...

2016-01-09 23:40:53

阅读数 2284

评论数 0

归并排序MergeSort

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。速度仅次于快速排序,为稳定排序算法,一般用于总体无序,但是各子项相对有序的数列。若将两个有序表合并成一个有序表,称为二路归并。...

2016-01-05 00:18:30

阅读数 1790

评论数 0

快排QuickSort

1、算法思想: /**      * 一趟快速排序的算法是: 1)、设置两个变量I、J,排序开始的时候I:=1,J:=N;      *      * 2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1];      *      * 3)、从J开始向前搜索,即由后开始向前搜索...

2016-01-05 00:15:47

阅读数 1595

评论数 0

冒泡排序BubbleSort

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1、算法思想 ...

2016-01-05 00:12:35

阅读数 1671

评论数 0

堆排HeapSort

堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆的构建--》堆排: 初始状态-从最后一个结点开始,使该子树成堆(最小/大的数移到根节点),不断循环>-初始堆(小/大顶)--输出堆顶元素(堆顶与堆的最后一个元素交换位置)--最后一个数移至堆顶--重新建堆--输出堆顶元...

2016-01-05 00:06:58

阅读数 1831

评论数 0

简单选择排序SimpleSelectSort

冒泡排序:在每一次比较的时候,如果发现相邻两数的次序不对,都会马上就把两数进行对调。 选择排序:则在比较过程中(内循环里面)并不进行对调,而是先记录下最小(大)数的下标,在一次扫描完成后再进行对调。  1、算法思想         在要排序的一组数中,选出最小(或者最大)的一个数...

2016-01-04 23:53:30

阅读数 1455

评论数 0

希尔排序ShellSort

希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。 Shell排序又称作缩小增量排序。 1、算法思想         先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行...

2016-01-04 23:47:24

阅读数 1513

评论数 0

直接插入排序StraightInsertSort

1、算法思想         将一个记录插入到已排序好的有序表中,从而得到一个新的记录数增1的有序表。         即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 2、代...

2016-01-04 23:43:28

阅读数 1569

评论数 0

排序算法笔记说明

排序算法相关内容是个人理解并代码实现的常用的内部排序算法,目前包括如下七大算法(暂不包括基数排序):直接插入排序、希尔排序、简单选择、堆排、冒泡、快排、归并排序。 相关内容最初写在自己的云笔记上,现发表于博客,希望和大家多多交流。 在写这些内容之时,也借鉴了一些前辈的文章,每个算法都自我实现了。本...

2016-01-04 23:35:59

阅读数 1548

评论数 0

蓝桥杯-算法训练51-Torry的困惑(基本型)

今天做这道题最初以为会用到什么数学公式,在思考后发现自己想多了。 思路主要两个: 1. 生成一个质数表,再按要求求值(本文就按此方法); 2.从小取到大,判断是否是质数,如果是就相乘,并构建计数器判断是否达到n个。 算法训练 Torry的困惑(基本型)   时间限制:1.0s   内存限制:...

2015-04-06 22:38:06

阅读数 2916

评论数 0

蓝桥杯-算法训练2 最大最小公倍数

刚做了,蓝桥杯算法训练的最大最小公倍数一题,感觉考查的是数学了,哈哈。 时间限制:1.0s   内存限制:256.0MB 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍...

2015-04-06 15:14:40

阅读数 2902

评论数 0

蓝桥杯-基础练习12 十六进制转八进制

基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 ...

2015-04-05 16:59:31

阅读数 3860

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭