- 博客(10)
- 资源 (23)
- 收藏
- 关注
原创 回溯算法经典应用之—迷宫问题 (Java)
1、回溯算法简介回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1)、定义一个解空间,它包含问题的解。2)、利用适于搜索的方法组织解空间。3)、利用深度优先法搜索解空间。4)、利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的解的过
2016-08-24 17:28:42 1383
原创 回溯算法经典应用之—N皇后问题 (Java)
1、回溯算法简介回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1、定义一个解空间,它包含问题的解。2、利用适于搜索的方法组织解空间。3、利用深度优先法搜索解空间。4、利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的解的过程中动态产生
2016-08-24 15:37:35 4358
原创 快速排序 (Java)
快速排序其实是对冒泡排序的升级,都属于交换排序类,只不过它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数与移动次数,它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。packag
2016-08-24 10:50:31 522
原创 归并排序 (Java)
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度是1,然后两两归并,得到n/2个
2016-08-24 10:40:11 341
原创 堆排序 (Java)
堆排序就是利用堆(大顶堆或者小顶堆)进行排序的方法,这个先假设用大顶堆,它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点,然后将它移走,其实就是将其与对数组的末尾元素交换,此时末尾元素就是最大元素,然后将剩余的n - 1个序列重新构造成一个堆,这样就会得到n个元素中的次大值,如此反复,完成排序。代码如下:package com.qian.sort;
2016-08-24 10:27:19 400
原创 希尔排序 (Java)
希尔排序也是一种插入式排序,是对直接插入排序的一种改进,希尔排序就是将待排序序列分组,这种分组是将相隔某个增量的记录组成一个子序列,实现跳跃式的移动,使得排序的效率提高。其实这个增量选取还是比较关键的,选取的不当可能导致排序结果不对。可究竟应该取什么增量好,目前还是一个数学难题。Java版的代码:package com.qian.sort;import java.util.Arrays
2016-08-24 10:15:42 475
原创 直接插入排序 (Java)
直接插入排序是一种稳定的排序算法,它的基本操作就是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。排序的过程可以联想一下玩扑克牌的时候摸牌的过程,每摸一张牌,都会理一次牌,也就是插入排序的原理。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class Inser
2016-08-24 10:02:45 411
原创 简单选择排序 (Java)
简单选择排序就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。简而言之,就是每一趟记录最小值得索引值,然后交换,是一种稳定的排序算法。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class SelectSort { public void sele
2016-08-23 20:00:32 297
原创 排序之冒泡排序 (Java)
冒泡排序是一种最简单的排序算法,是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果范旭则交换,直到没有反序的记录为止,是一种稳定的排序算法。Java版的代码如下:package com.qian.sort;import java.util.Arrays;public class BubbleSort { void bubbleSort(int[] nums) {
2016-08-23 19:54:38 347
原创 Java中的static关键字深入解析
一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在JVM加载一个类的时候,若该类存在sta
2016-08-12 14:46:51 535
状态机.zip
2017-09-24
4.3.0.RELEASEspring-web.zip
2017-07-13
云帆大数据------03 HDFS体系结构、Shell操作和Java API使用
2015-10-21
云帆大数据----02 Hadoop 1.x介绍、本地(单机)模式和伪分布式安装与测试
2015-10-21
51单片机实现交通灯系统模拟
2015-10-20
AVR-mega128单片机实现温度DS18B20,proteus仿真实现
2015-10-20
51单片机实现用ADS1115采集0~5V电压
2015-10-20
Hadoop权威指南(中文版)
2015-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人