• 查找


    package com.lkr.dataStructure;

    import java.util.Scanner;

    public class Search {

    public static void main(String[] args){
    int srcArrays[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101};
    Scanner input = new Scanner(System.in);
    System.out.println("请输入你要查找的数:");
    int num = input.nextInt();
    //int seqResult = sequentialSearch(srcArrays,21);
    int seqResult = sequentialSearch(srcArrays,num);
    if(seqResult == -1){
    System.out.println("查找的数不再数组中");
    }
    else {
    System.out.println("顺序查找结果:第" + (seqResult+1) + "个数,值为: " +srcArrays[seqResult] );
    }
    int binResult = binSearch(srcArrays,0, srcArrays.length-1,num);
    if(binResult == -1){
    System.out.println("你要查的数不存在");
    }
    else {

    System.out.println("二分查找结果:第" + (binResult+1) + "个数,值为: " +srcArrays[binResult] );

    }





    }
    //顺序查找算法:从表中的第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,
    // 则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有多查的记录,查找不成功
    public static int sequentialSearch(int[] a,int value){
    /*int []b = new int[a.length+1];
    b[0] = value;
    for(int i=0;i<a.length;i++){
    b[i+1] = a[i];
    }
    int j = a.length;
    while (b[j] != value){
    j--;
    }

    return j;*/
    for(int i=0;i<a.length;i++){
    if(a[i] == value){
    return i;
    }
    }
    return -1;

    }

    //二分查找递归实现
    public static int binSearch(int[]a,int start,int end,int key){
    int mid = (end - start)/2 +start;
    if(start > end){
    System.out.println("");
    return -1;
    }
    if(key == a[mid]){
    return mid;
    }
    else if(key > a[mid]){
    return binSearch(a,mid+1,end,key);
    }
    else if(key < a[mid]){
    return binSearch(a,start,mid-1,key);
    }
    return -1;
    }


    }
  • 相关阅读:
    通过前序遍历和中序遍历确定二叉树,并输出后序遍历序列
    浅谈c语言和c++中struct的区别
    KFCM算法的matlab程序
    聚类——KFCM
    FCM算法的matlab程序2
    GMM算法的matlab程序
    FCM算法的matlab程序
    K-means算法的matlab程序
    GMM算法的matlab程序(初步)
    FCM算法的matlab程序(初步)
  • 原文地址:https://www.cnblogs.com/turningli/p/10393672.html
Copyright © 2020-2023  润新知