java基础---数组的查找算法(2)】的更多相关文章

一.查找的基本概念 查找分为有序查找和无序查找,这里均以数组为对象,有序查找指的是数组元素有序排列,无序查找指的是数组元素有序或无序排列 平均查找长度(Average Search Length,ASL):和指定查找元素key进行比较的表中数据的个数的期望值 对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和. Pi:查找表中第i个数据元素的概率. Ci:找到第i个数据元素时已经比较过的次数. 查找分类:线性查找(顺序查找).二分查找(折半查找).插值查找.斐波那…
一.排序的基本概念 排序:将一个数据元素集合或序列重新排列成按一个数据元素某个数据项值有序的序列 稳定排序:排序前和排序后相同元素的位置关系与初始序列位置一致(针对重复元素来说,相对位置不变) 不稳定排序:排序前和排序后相同元素的位置关系与初始序列相比发生改变 排序算法分类: 内部排序:将所有数据加载到内部存储器中完成,待排序序列完全存放在内存中的排序 插入排序:直接插入和希尔排序 选择排序:直接选择排序和堆排序 交换排序:冒泡排序和快速排序 归并排序 分配排序:桶排序,基数排序,计数排序 外部…
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回这个元素,如果没有这个元素,就可以返回一个负数.今天我们来介绍一下折半查找的原理,并自己用代码实现折半查找. 一.数组的折半查找原理 二分查找发,也叫折半查找,它的前提就是被查找的数组的元素,必须是有序(本篇博客数据案例均为升序)排列的. 1>.在查找前对数组进行折半操作 (初始化指针位置) 折半公…
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位. b) 图例说明: 原始数据:int[] a={4,6,2,8,1,9,0,3}; 要查找数字:8 代码演示: import java.util.Scanner; /* * 顺序查找 */ public class SequelSearch { public static void main(St…
好久没写算法了.只记得递归方法..结果测试下爆栈了. 思路就是取范围的中间点,判断是不是要找的值,是就输出,不是就与范围的两个临界值比较大小,不断更新临界值直到找到为止,给定的集合一定是有序的. 自己写的代码: package com.gh; import java.util.Arrays; /** * 二分查找算法实现 * @author ganhang * */ public class Search { public static void main(String[] args) { se…
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类. 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些. 在StringBuffer类中存在很多和String类一样的方…
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特点是每个元素都进行比较,二冒泡排序是数组中相邻元素进行比较.接下来我们一起来看看选择排序和冒泡排序的原理以及如何用Java代码去实现它们. 一.选择排序原理 数组中的每个元素和其它元素进行比较换位置.比如现在有以下一个数字,需要对数组中的值进行排序,要求是从小到达进行排序.我们不妨看看选择排序是如何…
Java基础--数组的定义与使用       一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量[]={初始值}; 例如: int m[]=new int[6]; m[0]=1; m[1]=2; 或 int m[]={1,2,3};   格式二: 数据类型[] 数组变量=new 数据类型[长度]; 或 数组类型[] 数组变量={初始值}; 例如: int[] m=new int[6]; 或 i…
二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分.通过一次比较,将查找区间缩小一半. 折半查找是一种高效的查找方法.它可以明显减少比较次数,提高查找效率.但是,折半查找的先决条件是查找表中的数据元素必须有序. 折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删…
一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较.如果在某一步骤数组为空,则代表找不到.这种搜索算法每一次比较都使搜索范围缩小一半. 三.优缺点 二分查找算法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因此,二分查找…