![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java算法
文章平均质量分 63
飘过的风
冰冻着的火
展开
-
Java 冒泡排序及其改进
冒泡排序基本思想就是 :反复扫描待排序的数组 ,在扫描的过程中顺次比较相邻的两个元素的大小,若逆序则交换位置原创 2016-02-29 16:56:36 · 456 阅读 · 0 评论 -
Java 折半查找
折半查找(二分查找)用的是二分法,即待查元素与表中间位置比较,相等则查找成功,否则将表分成前后两个子表,如果中间位置记录大于待查元素 ,则进一步去查找前表,否则查找后一表 。使用折半查找有两个要求:1,必须采用顺序存储结构;2,必须按关键字大小有序排列上代码:public class 二分查找 { /** * * @return key所在索引值原创 2016-03-09 21:45:22 · 528 阅读 · 1 评论 -
Java直接插入排序
直接插入排序是 -插入类排序-的一种 具体过程:数组第二个及后面的元素位置放入到一个整型变量observe中,依次作为监视哨,依次和后面的元素data[i]比较,如果 observe < data[i], 则data[i+1] = data[i] 接着和data[i-1]比较,直到遇到一个小于或等于observe的元素data[k],此时data[k]后面一定是空位置,data[k+1] = observe ,原创 2016-02-29 21:48:01 · 459 阅读 · 1 评论 -
Java 折半插入排序
折半插入排序(二分插入排序),也是插入排序的一种,利用二分法的思想去寻找元素应该在的位置 平均时间复杂度:O(n^2) 最好时间复杂度:O(nlgn) // 数组完全有序 最坏时间复杂度:O(n^2) // 数组完全逆序 空间复杂度:O(1) 算法稳定性:稳定上代码:public class 二分法插入排序 { private static原创 2016-03-09 18:03:42 · 419 阅读 · 0 评论 -
Java 堆排序
堆排序是对简单选择排序的优化,是一种原地排序的排序过程,只需要一个辅助空间进行交换操作 ,所以其空间复杂度是O(1)时间复杂度无论是最坏还是最好都是 :O(nlgn) , 但是它也是一种不稳定的算法,不适用于较小的数组 ,对于较大的文件比较有效原创 2016-03-03 22:37:58 · 614 阅读 · 0 评论 -
Java贪心算法 删数字问题
问题描述:对给定的n位数字 指定要删除的数字个数 k ,要求删除这k个数之后 ,按照数字原左右顺序 新形成的数字最大如输入: 5689 1 表示对于5689 删掉一个数字后 得到最大值 应输出 : 689贪心算法核心思想就是 :总是做出当前最好的选择 那么要删除每一个数时 都从左侧第一个数(最高位)开始比较每两个数字的大小 如果左侧原创 2016-01-14 11:26:49 · 922 阅读 · 0 评论 -
Java 简单选择排序
简单选择排序是一种很简单的排序,和冒泡有很多相似之处,比如两层for循环 ;但是时间复杂度太高了,最好最坏都是O(n^2)原创 2016-03-01 20:28:34 · 455 阅读 · 0 评论 -
Java 用栈解决括号匹配问题
在南阳理工ACM看到的一道题问题描述:问题描述 : 输入一个字符串 里面只含有 [ , ] , ( , ) 四种括号 ; 现要求判断这个字符串 是否满足括号匹配 如 ([])() 是匹配的 ([)]是不匹配的先贴代码 public void check(String str) { Stack stack = new Stack(); // 如果该St原创 2015-12-08 17:55:52 · 10955 阅读 · 1 评论 -
Java 快速排序
快速排序作为一种快速的排序算法,所以现在就详细的介绍一下 且用Java代码详细的讲解原创 2016-02-28 13:59:54 · 432 阅读 · 0 评论