字符二分快速查找

import java.util.Scanner;

/**
 *
 * @author luozhonghua
 *
 */
public class charSearchAndSort {

	 static void kuaiSu(char[] a,int left,int right)             //字符快速排序
	    {
	        int f,l,r;
	        char t;  

	        l=left;
	        r=right;
	        f=a[(left+right)/2];  

	        while(l<r){
	            while(a[l]<f) ++l;
	            while(a[r]>f) --r;
	            if(l<=r){
	                t=a[l];
	                a[l]=a[r];
	                a[r]=t;
	                ++l;
	                --r;
	            }
	        }  

	        if(l==r)  l++;
	        if(left<r) kuaiSu(a,left,l-1);                 //递归调用
	        if(l<right) kuaiSu(a,r+1,right);                //递归调用
	    }  

	 static int searchFun(char []a,int n,char x){                     //折半查找
		    int mid,low,high;
			low=0;
			high=n-1;
		    while(low<=high){
		   		mid=(low+high)/2;
				if(a[mid]==x)
		            return mid;						//找到
				else if(a[mid]>x)
				    high=mid-1;
		        else
					low=mid+1;
		    }
			return -1;								//未找到
		}

	    public static void main(String[] args)
	    {
	        char[] str=new char[80];
	        int N;
	        char[] x=new char[80];

	        System.out.print("输入一个字符串:");
	        Scanner input=new Scanner(System.in);
	        str=input.next().toCharArray();                         //输入字符串
	        N=str.length;
	        System.out.print("排序前:\n");
	        System.out.println(str);                //输出
	        kuaiSu(str,0,N-1);                      //二分排序
	        System.out.print("排序后:\n");
	        System.out.print(str);              //输出  

	        //二分查找
	        System.out.print("\n");
	        System.out.println("输入要查找的字符:");
		    Scanner inpu=new Scanner(System.in);
		    x=inpu.next().toCharArray();							//输入要查找的数

		   int n=searchFun(str,N,x[0]);						//查找
		    if(n<0)								//输出查找结果
	           System.out.println("没找到数据:"+x);
			else
			   System.out.println("数据:"+x[0]+" 位于数组的第"+(n+1)+" 个元素处。");

	    }
}
时间: 2025-01-21 00:29:23

字符二分快速查找的相关文章

Beyond Compare快速查找字符串位置方法

  Beyond Compare软件是一款专业的代码比较工具,它可以快速查找代码差异,并且支持文件合并,生成报告.在使用Beyond Compare软件比较代码时,如果代码文件过于冗长,如何才能快速查找某字符串在对比文件中的具体位置呢?一起来看看Beyond Compare快速查找字符串位置方法吧. 步骤一:打开Beyond Compare软件文本比较会话操作界面,单击"浏览文件"按钮选择需要比较的代码.单击工具栏"搜索"按钮,在展开的菜单中选择"查找&q

python快速查找算法应用实例_python

本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考. 具体实现方法如下: import random def partition(list_object,start,end): random_choice = start #random.choice(range(start,end+1)) #把这里的start改成random()效率会更高些 x = list_object[random_choice] i = start j = end while True: while li

JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】_javascript技巧

本文实例讲述了JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法.分享给大家供大家参考,具体如下: 实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的

Android手机联系人带字母索引的快速查找_Android

喜欢另辟蹊径的我,在这里废话不多说了,直接上代码和图片了. 效果图如下: 第一步:MainActivity的代码如下: package net.loonggg.test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.TreeSet; import android.os.Bundle; import and

JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容

实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的是哪个字母,然后遍历索引中是否存在相同的拼音首字母: 这里还实现了根据字母组合来查找的功能,原理是这样的:当用户按键时,

手机Excel如何通过关键字快速查找内容

最近一段时间,阿mo了解到不少朋友时常要在手机处理Excel表格."如何将电脑中的Excel表格导入手机中?""我的手机能打开Excel表格吗?"以及"如何在手机中快速找到想要的内容?"诸如此类的问题都反映出,越来越多的人要用手机等移动设备处理Excel表格. 针对前两个问题,阿mo不做赘述.今天跟随阿mo一起,借助阿mo的老伙伴HTC G7来看看,在WPS移动版中,有什么方法快速查找到想要的内容. WPS移动版应用是专为移动办公人群打造全功能办

JavaScript如何获取中文拼音首字母并通过拼音首字母快速查找页面

实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的是哪个字母,然后遍历索引中是否存在相同的拼音首字母: 这里还实现了根据字母组合来查找的功能,原理是这样的:当用户按键时,

巧用windows7资源管理器快速查找文件

  windows7资源管理器的最大妙用在于预览功能,比如我们一个文件夹里有很多照片,我们需要找到一个我们比较喜欢的那张,一般大家都是一张一张的去打开查找,但是用windows7资源管理器预览即可轻松查找,另外windows7资源管理器不仅仅支持图片预览,还支持PPT文档,word文档以及音乐文件是视频文件等,功能相当实用,下面我们一起来学习下.使用windows7资源管理器快速查找所需图片,视频文件.PDF文档.word文档等等. 有的时候,我们一个文件夹里放置有了很多图片,但如何快速找到我们

php快速查找数据库中恶意代码的方法

  本文实例讲述了php快速查找数据库中恶意代码的方法.分享给大家供大家参考.具体如下: 数据库被输入恶意代码,为了保证你的数据库的安全,你必须得小心去清理.有了下面一个超级方便的功能,即可快速清除数据库恶意代码. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 function cleanInput($input) { $search = array( '@