算法
白熊的编程小站
keep calm and carry on.
展开
-
基本排序算法总结
1、选择排序 首先找到数组中最小的元素,然后将其与第一个元素交换,如果最小元素是自己,就和自己交换。然后继续找后面元素中最小,与第二个元素交换,如此往复,直到最后一个元素。排序代码如下 public static void Sort(Comparable[] a) //选择排序 { int N = a.length; for (int i = 0; i < N;原创 2017-09-01 21:30:41 · 282 阅读 · 0 评论 -
枚举--------熄灯问题
问题描述:有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。在上图中,左边矩阵中用X标记的按钮表示被按下,右边的矩阵表示原创 2018-02-07 10:43:59 · 241 阅读 · 0 评论 -
递归------汉诺塔问题
描述:汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成。一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体。对汉诺塔的一次合法的操作是指:从一根柱子的最上层拿一个盘子放到另一根柱子的最上层,同时要保证被移动的盘子一定放在比它更大的盘子上面(如果移动到空柱子上就不需要满足这个要求)思路:针对汉诺塔问题,一般采用递归思想,将大问题转原创 2018-02-07 11:04:21 · 569 阅读 · 0 评论 -
递归----------上台阶问题
问题描述:有一个楼梯,甲现在位于第0阶,每次可以上1阶,2阶,3阶,那么到达第N阶共有多少种走法?思路:用递归的思想很容易解决,即 先上1个台阶后的上法+先上两个台阶的上法+先上三个台阶的上法边界条件: 当台阶 n==0,即认为是有一种方法,即不上台阶,当n递归函数如下int statis(int n){ if (n<0) return 0; if(n == 0)原创 2018-02-07 11:42:05 · 1778 阅读 · 1 评论