![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java算法
文章平均质量分 95
稻草人……
这个作者很懒,什么都没留下…
展开
-
数据结构与算法-----12.字符串匹配:
在软件工程中,我们用到字符串匹配的地方非常多,比如:文本编辑软件中的查找功能,判断两个字符串是否相等。字符串匹配分为两种情况:(1)字符串一对一的匹配,(2)在一个字符串中同时查找多个子串。1.对于一对一的匹配,有经典的BF算法(Brute Force)暴力匹配算法:核心思想:字符串匹配算法中有两个核心词:(1)基础字符串(主串)(2)模式串(例如:在字符串A中查找字符串B,那么A就是...原创 2019-12-20 09:44:34 · 232 阅读 · 0 评论 -
数据结构与算法-----7.二分查找:
1.概念:二分查找也称为 “折半查找”,采用的是二分思想,每次可以将数据查询的范围缩小为原来的一半,所以它的效率非常高。同时二分查找针对的也是有序的数据集合,它的时间复杂度为O(logn)。2.O(logn)是一个非常恐怖的数量级,即使n非常大,但是对应的logn的结果也是非常的小。2^32次方大约等于42亿,但是我们从42亿个数据中利用二分查找来搜索数据,也就查找32次就够了。3...原创 2019-12-03 15:21:10 · 437 阅读 · 0 评论 -
数据结构与算法-----6.排序算法:
1.各种常用排序算法的时间复杂度:算法名称: 时间复杂度: 是否基于比较: 冒泡/插入/选择(排序) O(n^2) yes 快速排序/归并(排序) O(nlogn) yes 桶/计数/基数(排序) O(n) no 2.在分析一个排序算法时,应该从以下几个方面去考虑:(...原创 2019-12-23 14:43:30 · 177 阅读 · 0 评论 -
java中字符串的初始化过程以及String Stringbuilder StringBuffer 的区别:
在Java的JVM中,有一个字符串常量池的概念,在jdk 1.7之后,字符串常量池被划分到java的Heap中,Java的八种基本数据类型中,除了float 和 Double ,其他都实现了常量池技术。(字符串常量池底层是用HashTable实现的,以 key---value 的形式存储数据)1. String s1 = "hello world"; String s2 =...原创 2019-08-01 10:01:34 · 1133 阅读 · 0 评论 -
Java排序算法---快速排序
/** 快速排序的核心思想:1. 需要三个重要元素(左指针,右指针,基准数key[一般采用数组的第一个元素作为基准数])* 2. 如果采用数组的第一个数据作为基准数,那么需要首先右指针向前移动,直到找到比key小的数据停下。* 3. 然后左指针向后移动,直到找到比key大的数据停下* 4. 然后将左右指针所指向的数据做交换* 5. 重复上面的动作,知道左右指针重合 ,最后将左指针或右...原创 2019-04-18 14:01:27 · 487 阅读 · 4 评论 -
java排序算法---简单选择排序
public class SelectSort { public static void main(String[] args) { int[] arr = {5,4,3,2,1,5}; selectSort(arr); for(int i=0;i<arr.length;i++) { System.out.pr...原创 2019-04-17 16:19:18 · 107 阅读 · 0 评论 -
java排序算法----冒泡排序
public class BubbleSort { /* * 冒泡排序的思想:每次都让相邻的两个元素做比较,小的放前面,大的放后面*/ public static void main(String[] args) { int[] arr = {5,3,4,2,1,1312,-123123}; bubbleSort(arr); ...原创 2019-04-17 16:18:08 · 78 阅读 · 0 评论 -
java数据结构------图
public class GraphTest { public static void main(String[] args) { final int MAXVAL = 1000; Graph graph = new Graph(9); /* int[] a0 = new int[] {0,MAXVAL,MAXVAL,MAX...原创 2019-03-12 15:15:18 · 139 阅读 · 0 评论 -
汉诺塔算法
public class HanoiTowerTest { private int i = 1; public static void main(String[] args) { HanoiTowerTest hanoi = new HanoiTowerTest(); hanoi.hanoiTower(4,'A','B','C'); ...原创 2019-03-12 15:12:54 · 601 阅读 · 0 评论 -
欧几里德算法
public class GdcTest { public static void main(String[] args) { GdcTest gt = new GdcTest(); int i = gt.Gdc(44,55); System.out.println("最大公约数为:"+i); } /** ...原创 2019-03-12 15:12:02 · 97 阅读 · 0 评论