`

数据结构之查找(一)基本内容

 
阅读更多

一、查找的基本概念

      

        1.查找是数据结构中非常重要的一部分,无论你用的网站、日常生活电话号码、出门的地图、你想获取的信息......这些都要从查找开始。

        

         2.查找常进行的操作:

                                            (1)查询某个特定的元素是否在查找表中;

                                            (2)检索摸某个个数据元素的属性;

                                            (3)添加

                                            (4)删除

 

         3.查找的分类:

                                (1)静态查找 仅包含了操作的1-2

                                (2)动态查找 包含了操作的1-2-3-4

                   

                                  ps:如果只进行操作常用的结构是数组可以直接定位

                                       对于能够进行包含添加删除类的链表是有优势的     

                                       整个问题应用与二叉树的话有链表的性质,又有查找的优势                                 

 

二、静态查找

 

       1.顺序扫描

       2.二分查找,要求先排序的

 static void Main(string[] args)
        {
            int[] temp = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 };
            quickSortRun(temp, 0, temp.Length - 1);
            Console.WriteLine(binarySearch(temp,9,0,temp.Length));
        }

        //create a binary search you must first sort it
        public static int binarySearch(int[] temp, int key, int start, int end) { 
              
            while (start < end)
            {
                int midPosition = (start + end) / 2;

                if (key == temp[midPosition])
                {
                    return midPosition;
                }
                else if (key < temp[midPosition])
                {
                    end = midPosition - 1;
                }
                else
                {
                    start = midPosition + 1;
                }
            }
            return -1;
        }

        //quick sort
        public static int   quickSort(int[] temp, int start, int end) { 
        //decalre a variables of key
            int key = temp[start];
            while (start < end) {

                //first get the position of below the start
                while (start < end && temp[end] > key) {
                    end--;
                }
                temp[start] = temp[end];

                //second get the position of above the start
                while (start < end && temp[start] < key) {
                    start++;
                }
                temp[end] = temp[start];
            }

            //end let the position key
            temp[start] = key;
         return start;
        }

        //quick sort is running
        public static void quickSortRun(int[] temp, int start, int end) {
            if (start < end) {
                int position = quickSort(temp, start, end);
                quickSortRun(temp, start, position - 1);
                quickSortRun(temp, position + 1, end);
                
            }
        }

 

三、动态查找

 

     1.二叉树查找树 基本实现

        (1)左子树不为空,则左子树小于根节点

        (2)右子树不为空,则右子树大于根节点

        (3)左右子树又是一个二叉排序树

 

       =》优点:查找方面,时间的复杂度跟这个二叉树的深度有关系。最坏O(n)

       =》缺点:当出现极端的情况下都是左子树或者右子树,那么意义不大了,纯粹一链表

                       =》平衡树方面:定义|左子树的度-右子树的度|<2 时间复杂度为O(log n)

                              =》红黑树 基本实现

                              =》 AVL 基本实现

 

     2.B树的方面

      =》可以看下索引方面,文件方面的查询

      =》因为前段时间在看LUCENE

      =》这些了解了回过头来继续看下

 

     3.Hash方面

       =》其实我倒现在都还不是太了解这些方面的东西

       =》理解的范围只在于映射

 

     4.TRIE树

      =》对准字典方面的 我前面写的

 

分享到:
评论

相关推荐

    数据结构顺序查找

    数据结构中的查找是计算机科学中一个基础且重要的概念,它涉及到如何在一组数据中找到特定的信息。本实验报告主要关注两种查找算法的实现:顺序查找和二分查找,这两种方法在不同的场景下各有优势。 首先,顺序查找...

    数据结构_动态查找表

    动态查找表是数据结构中的一种重要实现,主要用于高效地进行数据查找、插入和删除等操作。在本主题中,我们将深入探讨动态查找表的概念、实现方式以及其在C语言中的应用。 动态查找表是一种灵活的数据结构,它允许...

    数据结构——查找

    数据结构中的查找是数据操作的重要组成部分,主要涉及在数据集合中寻找特定元素的过程。查找算法的性能直接影响到程序的效率,特别是在大规模数据处理时。本文将深入探讨几种常见的查找技术,包括顺序查找、二分查找...

    数据结构 哈希查找

    哈希查找是数据结构中的一个重要组成部分,它提供了一种快速定位数据的方法。在这个主题中,我们将深入探讨哈希查找的概念、实现、优势以及在C语言中如何构建一个友好的用户界面来实现这一功能。 哈希查找的基本...

    数据结构之二分法查找和散列查找实验

    在"数据结构实验4--查找"的压缩包中,很可能是包含了关于这两个查找算法的实验代码和说明文档。实验的目的是让你深入理解这两种查找方法的原理,并通过实践提高编程能力。你可以通过阅读和运行这些代码,观察它们...

    3种查找算法——数据结构实验

    总结来说,掌握这些基本查找算法对于理解数据结构和算法的基础至关重要。在实际应用中,开发者需要根据数据的特性、查询需求以及性能要求来选择合适的查找算法,以优化程序性能。通过实验和实践,不仅可以深化理论...

    数据结构作业之一查找

    在这个“数据结构作业之一查找”的主题中,我们将深入讨论查找算法的基本概念、类型以及在实际应用中的重要性。 一、查找的基本概念 查找是指在数据集合中寻找指定目标值的过程。查找效率取决于数据的组织方式和所...

    数据结构二叉树查找方式

    二叉树是一种基于树的数据结构,它是一种自适应树形结构,能快速查找、插入、删除树中的元素。二叉树查找方式是指在二叉树中查找指定元素的过程。 一、树和二叉树的概念 树是由节点和边组成的非线性集合。每个节点...

    C++数据结构折半查找法(二分查找)

    总的来说,二分查找法是C++数据结构学习中的一个重要部分,对于提高程序的运行效率有着重要作用。理解并能熟练运用二分查找法,将有助于提升作为程序员的数据处理能力。通过不断的实践和练习,初学者可以更好地掌握...

    数据结构 顺序查找 折半查找

    顺序查找是最基础的查找算法之一,适用于任何线性结构,如数组或链表。它的基本思想是从数据集的第一个元素开始,逐个与目标值比较,直到找到匹配的元素或遍历完整个数据集。如果找到目标值,则返回其位置;若未找到...

    《数据结构》 查找和排序 实验报告

    《数据结构》是一门深入研究数据组织和存储的学科,其中查找和排序是核心内容。实验报告的目标在于让学生深入理解并能实际应用这些概念。在本实验中,学生需要掌握以下知识点: 1. **查找算法**: - **顺序查找**...

    数据结构 实验4:查找的应用

    查找算法是数据结构中的一个重要组成部分,主要用于在数据集合中寻找特定元素。本实验报告主要聚焦于二分查找这一高效的查找方法,特别是在有序序列上的应用。 #### 二分查找详解 **原理:** 二分查找是一种在有序...

    数据结构-查找基本操作代码.doc

    在数据结构-查找基本操作代码的另一个部分,引入了二叉排序树,这是一种特殊的二叉树,其中每个节点的左子树只包含键值小于当前节点的元素,右子树包含键值大于当前节点的元素。`InsertBST` 函数实现了二叉排序树的...

    数据结构之查找及应用(实验)

    在本实验中,我们将深入探讨数据结构之查找及应用的基本概念和思想。查找是数据结构中的一种基本操作,旨在从大量数据中快速地找到满足特定条件的记录。本次实验将涵盖顺序查找、二分查找、动态查找等多种查找方法,...

    数据结构中查找和排序算法实验报告

    根据提供的实验报告信息,我们可以详细地探讨数据结构中查找与排序算法的相关知识点,具体包括折半查找、顺序查找、归并排序以及堆排序这四种算法。 ### 一、折半查找 #### 定义与原理 折半查找,也称二分查找,是...

    数据结构查找实验报告

    在这个“数据结构查找实验报告”中,我们重点探讨了三种基本的查找方法:顺序查找、折半查找以及二叉排序树查找。 1. **顺序查找**:是最基础的查找方法,适用于任何无序或有序的数据集合。它从数据集的第一个元素...

    数据结构静态查找的实现

    静态查找表是一种在数据处理中常见的数据结构,主要用于快速查找指定元素。在这个主题中,我们将深入探讨静态查找表的概念、实现方法以及其在C语言中的应用。 静态查找表通常是在内存中预先分配好固定大小的数组,...

    数据结构实验 折半查找的有关操作

    数据结构实验中的“折半查找”是一种高效的搜索算法,特别适用于已排序的数据集合。这个实验旨在帮助学生理解和掌握如何用C语言实现这种算法,以及在顺序存储结构上进行基本的查找表操作。 实验目的分为两个方面: ...

    哈希查找数据结构实验报告.pdf

    哈希查找数据结构实验报告 本实验报告的标题是 "哈希查找数据结构实验报告.pdf", 描述是 "哈希查找数据结构实验报告.pdf", 标签是 "考试"。该实验报告讲述了哈希表的造表和查找算法的实现。 第一部分:需求分析 ...

    数据结构查找、排序、二分查找、折半查找算法

    查找是数据结构中基本的操作之一,它的目标是在数据集合中找到特定元素的位置。线性查找是最基础的查找方法,但效率较低,尤其是当数据量大时。为提高查找效率,引入了二分查找算法。二分查找适用于已排序的数组或...

Global site tag (gtag.js) - Google Analytics