zoukankan      html  css  js  c++  java
  • 数据结构之查找

    本次主要包含内存中的查找有:顺序查找,折半查找,分块查找,二叉排序树查找,哈希表查找

    1)顺序查找:是最简单的查找方式,如,a= {45,53,12,3,37,24,90,100,61,78};进行排序,java程序实现如下所示:

    package com.three.five;
    
    public class SearchSX {
    
        public static void main(String[] args) {
             
            int [] a= {45,53,12,3,37,24,90,100,61,78};//定义数组
            int des=90;//需要查找的目标数字
            boolean flag=false;
            for(int i=0;i<a.length;i++) {
                if(des==a[i]) {
                    System.out.println("找到目标数字:"+des+",在数组中的第 "+(i+1)+" 个位置");
                    flag=true;
                    break;
                } 
            }
            if(!flag) {
            System.out.println("定义的数组中没有目标数字");
            }
        }
    }

    以上代码运行结果为:

    是按照顺序一个一个进行比较查询,最快是第一次比较匹配,最慢是最后一个比较匹配,算法的时间复杂度是O(n),

    2.折半查找,也叫二分查找,需要时有序存放,查找起来会快很多,如给定的数组是(3,6,12,23,30,43,56,64,78,85,98),要查找的数据是30,方法参数可以随自己换。

    则使用折半查找的程序如下所示:

    package com.class02;
    
    /**
     * 折半查找:前提是有序的,每次都是以中间顺序为比较基数,可以提高查询效率
     * @Date: 2019/3/23 9:30
     * @Version: 1.0
     */
    public class QuickSort {
    
        static int []a={3,6,12,23,30,43,56,64,78,85,98};
    
        public static int paritation(int []a,int key){
            int low=0;
            int high=a.length-1;
            int mid;
            while(low<=high){
                mid=(low+high)/2;
                System.out.println("比较数据为;"+a[mid]);
                if(a[mid]==key)return mid;
                 else
                     if(a[mid]<key)low=mid+1;
                     else high=mid-1;
            }
            return -1;
        }
    
        public static void main(String []args){
             int tim=QuickSort.paritation(QuickSort.a,30);
             System.out.print("最终比较"+tim+" 次得出结果:");
        }
    }

    运行结果为:

  • 相关阅读:
    PEB结构学习
    2016元旦总结
    pwnable.kr的passcode
    PE文件格式(加密与解密3)(一)
    IDA的脚本IDC的一个简单使用
    Python3的tkinter写一个简单的小程序
    2016/12/3-问鼎杯线上赛1-1-Misc
    2016/12/3-问鼎杯线上赛6-2逆向分析
    redis取经之路
    springboot踩坑出坑记
  • 原文地址:https://www.cnblogs.com/guopengxia0719/p/10477408.html
Copyright © 2011-2022 走看看