数据结构和算法 – 2.基础查找算法

1.顺序查找

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 数据结构和算法
{
    class _2
    {
        public readonly static int[] arrayList = new int[] { 312, 564, 1254, 145, 212, 884, 145, 1212, 443, 56, 222 };

        static void Main()
        {
            int[] numbers = new int[100];
            for (int i = 0; i < arrayList.Length; i++)
            {
                numbers[i] = arrayList[i];
            }

            int searchNumber;
            Console.WriteLine("输入一个数字:");
            searchNumber = int.Parse(Console.ReadLine());

            bool found;
            found = seqSerch(numbers, searchNumber);
            if (found)
            {
                Console.WriteLine(searchNumber +"找到了!");
            }
            else
            {
                Console.WriteLine(searchNumber + "没有在数组中!");
            }
            Console.ReadKey();
        }
        static bool seqSerch(int[] arr, int sValue)
        {
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] == sValue)
                {
                    return true;
                }
            }
            return false;
        }
    }
}

2.二叉查找

3.递归二叉查找

时间: 2024-10-26 21:21:56

数据结构和算法 – 2.基础查找算法的相关文章

STL算法总结之查找算法示例

STL算法总结之查找算法示例 1.adjacent_find: // 所有容器适用(线性的) adjacent_find(begin,end); adjacent_find(begin,end,Predicate); 在范围[first,last)之间寻找第一次出现的两个连续相等的元素,如果存在,则返回指向第一个元素迭代器,否则返回last.还可以使用自己定义的二元断言(就是自定义的判断方法) #include<vector> #include<iostream> #include

基础算法介绍 —— 二分查找算法

不知不觉在目前的公司待满3年了,打算回家找份工作.面试中被问到关于算法的题目:有哪些常见的查找算法?下来就把我所掌握的查找算法分享给大家,本文主要介绍二分查找算法. 算法定义(摘自百度):二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果

算法_001_二分查找算法

 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为:     1.第一步查找中间元素,即5,由于5<6,则6必然在5之后的数组元素中,那么就在{6, 7, 8, 9}中查找,    2.寻找{6, 7, 8, 9}的中位数,为7,7>

顺序查找算法和二分查找算法

顺序查找算法 int lin_Search(const int array[],int size,int key) { int index; for (index = 0;index <= size-1;++index) if (key==array[index]) return index; return -1; } 二分查找算法 int bin_Search(const int array[],int low,int high,int key) { int index; while ( hi

STL源码剖析——STL算法之find查找算法

前言 由于在前文的<STL算法剖析>中,源码剖析非常多,不方便学习,也不方便以后复习,这里把这些算法进行归类,对他们单独的源码剖析进行讲解.本文介绍的STL算法中的find.search查找算法.在STL源码中有关算法的函数大部分在本文介绍,包含findand find_if.adjacent_find.search.search_n.lower_bound. upper_bound. equal_range.binary_search.find_first_of.find_end相关算法,下

算法学习之查找算法:动态查找表(1)二叉排序树

引言: 动态查找表的特点是,在表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录. 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1.若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值. 2.若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值. 3.它的左.右子树也分别为二叉排序树. <一>二叉排序树的查找: 二叉排序树又称二叉查找树,查找过程是先将给定值和根结点的关键字比较,

php基础查找算法

1.顺序查找 1 function line_search($array,$tar) 2 { 3 if(!is_array($array) || count($array) < 1) return false; 4 for($i=0;$i<count($array);$i++){ 5 if($array[$i] == $tar){ 6 return $i; 7 } 8 } 9 return false; 10 } 11 12 line_search($arr,34); 2.二分法查找 1 //

算法学习之查找算法:静态查找表(1)顺序表查找

引言: 对查找表一般的操作有:1.查询某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性:3.在查找表中插入一个数据元素:4.从查找表中删去某个数据元素. 静态查找表的操作只包括两种:1.查找某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性: 静态查找表又有四种表现形式:顺序表的查找.有序表的查找.静态树的查找.索引顺序表的查找. 静态查找涉及的关键字类型和数据元素类型

算法学习之查找算法:静态查找表(2)有序表查找

如果静态查找表是一个有序表,则可以使用折半查找. 折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止.折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等于给定值或者查找区间的大小小于零时(表明查找不成功)为止. 关键字key与表中某一元素array[i]比较,有3种情况: 1.key==array[i],查找成功 2.key > array[i],待查找元素可能的范围是a