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 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《图解算法》简易笔记 -> 正文阅读

[数据结构与算法]《图解算法》简易笔记

数组、链表

特性数组链表
内存连续非连续
访问可随机访问(通过下标索引)只能遍历访问
增删改查内容固定,移动麻烦内存可申请,节点变换容易

队列、栈

队列 先进先出
栈 先进后出


选择排序

原理:新建同等size缓存,一个个将数据按大小一个放入新缓存当中
源数据:
src:【7】【12】【6】【9】【8】
des:【】【】【】【】【】
Step1:
src:【7】【】【6】【9】【8】
des:【12】【】【】【】【】
Step2:
src:【7】【】【6】【】【8】
des:【12】【9】【】【】【】
Step3:
src:【7】【】【6】【】【8】
des:【12】【9】【】【】【】
Step4:
src:【7】【】【6】【】【】
des:【12】【9】【8】【】【】
Step5:
src:【】【】【6】【】【】
des:【12】【9】【8】【7】【】
Step6:
src:【】【】【】【】【】
des:【12】【9】【8】【7】【6】


算法思路之分治(D&C)

原理:
(1)找出简单的基线条件
(2)确定如何缩小问题的规模,使其符合基线条件


快速排序

原理:分治思维 递归
把数组缩小,再缩小,直到size为1或者0

int *qsort(int *Array, int Array_size)
{
	if(Array_size <= 1)
	{
		return Array;
	}
	else
	{
		int left_size = 0;
		int right_size = 0;
		int temp = (int *)malloc(Array_size*sizeof(int))
		for(int i = 1; i < Array_size; i++)
		{
			if(Array[0] > Array[i])
			{
				temp[left_size] = Array[i];
				left_size++;
			}
			else
			{
				temp[Array_size-right_size-1] = Array[i];
				right_size++;
			}
		}
		temp[left_size] = Array[0];
		memcpy(Array, temp, sizeof(int)*Array_size)
		qsort(Array,left_size);
		qsort(Array+left_size+1,right_size);
		return Array;
	}
}

散列表(散列映射、映射、字典、关联数组,在大多数语言已经实现)

  • 散列函数特点:将输入映射到数字

  • 它必须是一致的:固定输入,得到一定为固定输出

  • 它应将不同的输入,映射到不同输出,即唯一性

  • 举个例子应用散列函数,可以构建散列表。

Array:【】【】【】【】【】

假设输入苹果(单价5.9元),得到3
苹果->散列函数->3
Array:【】【】【5.9】【】【】
则可以把苹果存在3处,下次查找苹果价格时,直接输入苹果,取得3,直接访问数组index3。


广度优先搜索(非加权图的算法 回答最短路径问题)

  • 用于有向图
  • 依靠队列实现。
  • 不断地把下一个点加入到队列里,直到查找到or最终找不到
  • 注意去重

狄克斯特拉(加权图的算法 最短时间最短路径)

  • 用于有向无环图
  • 难点在于节点开销的更新,每次更新最新节点的最小。

贪婪算法

  • 用于NP完全问题(要求计算每个可能的合集,查找最优,运算量巨大)
  • 这是一种近似的解法,每次都选择最符合要求的那个。一路到底。

动态规划

  • 用网格,逐渐增加横竖参量。
  • 问题分解的思维
  • 只能用于每个事物都是离散的,有相关性的话,就失灵了

最长公共子串
最长公共子序列
这两个字符串算法可能会被问到。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 12:11:23  更:2021-09-30 12:12:32 
 
开发: 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 11:28:31-

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