首页 > 代码库 > 字符二分快速查找
字符二分快速查找
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)+" 个元素处。"); } }
字符二分快速查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。