数据结构学习/复习1--时间复杂度计算/异或的几个实际用途

本文主要是介绍数据结构学习/复习1--时间复杂度计算/异或的几个实际用途,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是数据结构和算法

            1注:在内存中的存储管理数据          

                    2注:解决问题的方法

二、时间复杂度

          1.算法的效率

          2.时间复杂度的概念

    

              计算时间复杂度案例1: 

                  计算时间复杂度案例2:  

                计算时间复杂度案例3:   

                 计算时间复杂度案例4:

                   计算时间复杂度案例5: 

                       计算时间复杂度案例6: 

                       计算时间复杂度案例7: 

                     

                        计算时间复杂度案例8: 

                          计算时间复杂度案例9: 

 

                 大O渐进表示法:

                最好最坏与平均:

                 注意事项1:不建议直接数循环,要看具体算法 

                   

3.常见复杂度对比:

           

三、练习题与回顾

        法1:异或

注意事项:异或等按位运算均针对二进制位

1. **交换两个变量的值**:不使用临时变量,可以通过异或运算来交换两个变量的值。

2. **检查一个数是否是2的幂**:一个数是2的幂当且仅当它的二进制表示中只有一位是1,其余位都是0。通过将该数与`n-1`进行异或运算,如果结果为0,则`n`是2的幂

3. **合并两个排序数组**:在归并排序中,可以使用异或运算来合并两个已排序的数组。
4. **计算一个数组中元素的唯一值**:通过异或运算,可以找出数组中只出现一次的元素,而忽略出现两次的元素。

 5. **实现简单的加密算法**:异或运算可以用于简单的加密和解密操作。通过将明文与密钥进行异或运算得到密文,再用相同的密钥与密文进行异或运算即可得到明文

     法2:公式法

                   注: 将0~n用等差求和得出后减去数组中的数可得缺失的唯一数字

这篇关于数据结构学习/复习1--时间复杂度计算/异或的几个实际用途的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951985

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法