当前位置: 首页 > news >正文

C#,数据检索算法之跳跃搜索(Jump Search)的源代码

数据检索算法是指从数据集合(数组、表、哈希表等)中检索指定的数据项。

数据检索算法是所有算法的基础算法之一。

本文提供跳跃搜索的源代码。

1 文本格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static class ArraySearch_Algorithm
    {
        /// <summary>
        /// 跳跃搜索
        /// </summary>
        /// <param name="arr"></param>
        /// <param name="x"></param>
        /// <returns></returns>
        public static int Jump_Search(int[] arr, int x)
        {
            int n = arr.Length;
            int step = (int)Math.Sqrt(n);
            int prev = 0;
            while (arr[Math.Min(step, n) - 1] < x)
            {
                prev = step;
                step += (int)Math.Sqrt(n);
                if (prev >= n)
                {
                    return -1;
                }
            }
            while (arr[prev] < x)
            {
                prev++;
                if (prev == Math.Min(step, n))
                {
                    return -1;
                }
            }
            if (arr[prev] == x)
            {
                return prev;
            }
            return -1;
        }
    }
}

代码不重要,思路最重要。

2 代码格式

using System;namespace Legalsoft.Truffer.Algorithm
{public static class ArraySearch_Algorithm{/// <summary>/// 跳跃搜索/// </summary>/// <param name="arr"></param>/// <param name="x"></param>/// <returns></returns>public static int Jump_Search(int[] arr, int x){int n = arr.Length;int step = (int)Math.Sqrt(n);int prev = 0;while (arr[Math.Min(step, n) - 1] < x){prev = step;step += (int)Math.Sqrt(n);if (prev >= n){return -1;}}while (arr[prev] < x){prev++;if (prev == Math.Min(step, n)){return -1;}}if (arr[prev] == x){return prev;}return -1;}}
}

http://www.lryc.cn/news/288994.html

相关文章:

  • ElasticSearch 开发总结(九)——SearchType:DFS_QUERY_THEN_FETCH和QUERY_THEN_FETCH
  • 那些年与指针的爱恨情仇(一)---- 指针本质及其相关性质用法
  • 计算机网络——TCP协议
  • 软考高级有意义吗?
  • 二分算法模版
  • 【CSS】字体效果展示
  • asp.net宠物流浪救助系统
  • git常见命令
  • 主成分分析(PCA)Python
  • Leetcode—144. 二叉树的前序遍历【简单】
  • 混淆矩阵、准确率、查准率、查全率、DSC、IoU、敏感度的计算
  • ChatGPT目前的AI一哥
  • 认识思维之熵
  • 蓝桥杯备战——1.点亮LED灯
  • 【网络协议测试】畸形数据包——圣诞树攻击(DOS攻击)
  • Java基础面试题-5day
  • 软通智慧启动鲲鹏原生应用开发合作
  • 【STM32】STM32F4中USB的CDC虚拟串口(VCP)使用方法
  • 网络协议与攻击模拟_06攻击模拟SYN Flood
  • CPU,内存和硬盘之间的关系
  • Java面试题之基础篇
  • Bitbucket第一次代码仓库创建/提交/创建新分支/合并分支/忽略ignore
  • c#反射用法
  • WPF行为
  • N-141基于springboot,vue网上拍卖平台
  • Unity之Cinemachine教程
  • java面面试面经(面试过程)
  • 大语言模型-大模型基础文献
  • 【RH850U2A芯片】Reset Vector和Interrupt Vector介绍
  • Zabbix交换分区使用率过高排查