IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 左神算法笔记-1 -> 正文阅读

[数据结构与算法]左神算法笔记-1

1、讲解常数操作(00:00)
定义:一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。
说明了什么是常数操作,在时间复杂度的计算中,常数操作为计数单元,一个操作是一个单元,但并不是所有的常数操作消耗的时间都是相同的。

2、时间复杂度(4:23)
描述一个算法中常数操作的数量的指标,一般是多项式去最高项并把系数置为1。

3、 选择排序(4:23) 代码(23:28)
时O(n^2) 空O(1) 不受数据序列的影响(以下简称不受)

流程:
①先从0~N-1找到最小值赋给0位置
②从1~N-1上找到最小值赋给1位置
	……
tips:利用minindex寻找最小值并实现交换不用频繁交换数组元素,只需更新索引值

4、 冒泡排序(26:48) 代码(29:00)
时O(n^2) 空O(1) 不受

流程:
①先排0 1位置,二者较大的冒泡
②1 2位置比较,二者较大的冒泡
	……
ps:除了左神的代码还有在刷乙级的时候看到的写法记得复习

5、 讲异或运算(31:45)
异或看作无进位相加。

用法①:相同的两个数异或必定为0(由此衍生下面的算法题)
用法②:任何数与0异或都是本身
用法③:两数异或得到的结果某位是0则说明必定两数在这一位上不同

6、 常见算法面试题 (忘了) 代码(1:06:20)

	题目描述:
	(1)一个数组中有一个数a出现了奇数次,其余数都出现了偶数次,求这个数
	(2)两个数a,b奇数次其余偶数次,求这两个数(a≠b)

(1)用一个变量eor从头到尾异或数组中的每一个数,最后eor的值就是a
原理
出现偶数次的数都会因为上述的用法①变为0最后只出现一次的数由于用法②会出现在eor
(2)用eor = 0异或数组,最终得到eor = a^b;
∵a≠b
∴eor ≠0
则必有一位不是0;(假设第8位)
利用这一位将数组中的数分为两类:第八位是1的第八位是0
这两类是两组第一问
只要在设置eorr = 0与其中一组异或即可得到a or b;在用eorr^eor即可得到另一个数。

实际操作时不一定哪个地方是1,一般取最右边的1采取的方法是 原码&补码 得到的就是最右边的1那一位其余全0

7、 ?插入排序 (1:13:50) 代码(1:24:55)
时O(n^2)空O(1) 受数据序列的影响 最优可达O(n)

流程:(斗地主)抓牌码牌
①0~1 从1开始和0比,排序
②0~2 index指向2(待排),先和①比较合适就停,不合适和0比
	……

在这里插入图片描述

8、 二分法(1:32:06)代码(见数据结构课本课件)
时O(log n)

流程:
在有序数组中查找x,先找中间mid,如果mid > x,则x在左侧
反之在右
ps:一次砍一半,砍没了没找到就是没有

变式一:寻找≥num的最左位置(或≤num的最右位置)
找到了符合条件的不能听,用一个变量 t 记录此时最左(或最右)的位置在往左(或右)找,同时更新, t 的数值直到不满足返回当前 t 的数值。

变式二:在无序数组中寻找局部最小值
局部最小值描述(1:42:00)
问题解答(1:48:~)类似极值点的求法找拐点

9、 对数器(1:54:02)

用于验证函数的正确性

使用一个较为确定的函数作为对数器的标准部分,利用随机方法使得每次返回值都相同则函数正确
(独立oj)

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:04:09  更:2021-09-11 19:06:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 14:45:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码