自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 数据结构—树的应用—C语言

【代码】数据结构—树的应用—C语言。

2023-11-28 21:50:47 578

原创 链表操作—C语言

【代码】链表操作—C语言。

2023-11-23 13:01:27 164

原创 分治策略——最大子数组

分治策略——最大子数组。

2022-11-26 12:07:16 345

原创 C语言顺序表的静态建立

2. 除最后一个元素以外,每个元素都有一个后继;1. 除第一个元素以外,每个元素都有一个前驱;定义:n个相同数据元素组成的有限的序列;3. 一对一的关系;

2022-09-17 15:48:09 528

原创 Python 数据结构 —— 链表法

链表法通过建立链表来保存数据;发生冲撞就将数据保存在重装地址的后一个节点中;代码class Node: def __init__(self, value): self.value = value self.next = Nonedef create_table(num, hash_table): mod_index = num % len(hash_table) ptr = hash_table[mod_index] if n

2022-02-17 13:17:32 211

原创 Python 数据结构 —— 平方探测法 —— 除留取余法

平方探测法第一次查找: f(key);第二次查找:f(key)+1^2)%B;第三次查找:f(key)±1^2)%B;第四次查找:f(key)+2^2)%B;第五次查找:f(key)±2^2)%B;代码import mathdef Mod_create(num, hash_table): mod_index = num % len(hash_table) add = 1 flag = False while True: if hash_

2022-02-17 13:01:54 636

原创 Python 数据结构 —— 平方取中法——— 线性探测

平方取中法哈希表索引 = 数值 // 哈希表的长度 ;遇到碰撞问题:线性探测法;线性探测法:哈希表存储了数据就重新寻找数据索引存储数据;线形探测公式:哈希表索引= ( 哈希表索引 + 1) % 哈希表长度;平方取中法:十位数使用去除个位数当作索引地址,百位数使用十位数当作地址;代码def Div_Table(num, hash_table): hash_index = num // len(hash_table) while True: if hash_tab

2022-02-17 12:12:41 805

原创 Python 数据结构 —— 除留取余法 ——线性探测法

除留取余法哈希表索引 = 数值 % 哈希表的长度 ;遇到碰撞问题:线性探测法;线性探测法:哈希表存储了数据就重新寻找数据索引存储数据;线形探测公式:哈希表索引= ( 哈希表索引 + 1) % 哈希表长度;除留取余法:通过将数据和哈希表长度比较获取索引位置;代码def Hash_Table(num, hash_table): hash_index = num % len(hash_table) while True: if hash_table[hash_i

2022-02-17 12:10:19 1059 1

原创 Python 数据结构 —— 插值查找法

插值查找法是二分法查找的升级版;middle = low+ ((find_data - data[low])*(high-low)) // (data[high]//data[low]);high = middle - 1;low = middle +1;前提条件:数据必须是排好序的;时间复杂度:O(log2n);代码def Interpolation(data, find_data): low = 0 high = len(data) - 1 while lo

2022-02-17 10:45:54 672

原创 Python 数据结构 —— 二分法查找

二分法查找主要通过对 low 和 high 指针来运算;low = middle +1high = middle -1middle = (high-low)//2时间复杂度:log2n;比较次数:log2n+1;属于静态查找;前提条件:查找的数据必须是排好序的;代码def split_method(data, find_data): left_point = 0 right_point = len(data) - 1 while left_point &lt

2022-02-17 10:42:15 316

原创 Python 数据结构 —— 顺序查找法

顺序查找法通过对 n 个数据依次查;时间复杂度 O(n);代码def order_search(data, find_data): flag = 0 for i in range(len(data)): if data[i] == find_data: flag = i break return flagif __name__ == '__main__': data_all = [16, 12,

2022-02-17 10:38:58 991

原创 Python 数据结构———基数排序

基数排序一种通过比较每个数字的位数来进行排序时间复杂度 O(blog§*k)空间复杂度 O(p*n)稳定算法代码def Base(arr, size): base = 1 while base <= size * 10: tmp_arr = [[0] * size for rwo in range(10)] for i in range(size): index = (arr[i] // base) % 10

2022-02-16 10:23:47 383

原创 Python数据结构——快速排序

快速排序不稳定的算法主要思想: 1. 建立基准,通常是数据中的最右边数据,初始化的数据第一个元素不存储数据; 2. 通过设置左右指针,比较基准数据,大的放基准右边,小的放左边; 3. 依次递归左右分割区间;时间复杂度:O(n*log2^n);空间复杂度:O(n);代码def quick_sort(arr, start, end): arr[0] = arr[start] left = start right = end whil

2022-02-14 11:16:43 388

原创 Python数据结构———合并排序

合并排序合并排序:通过将数据分为n个组,通过n步分别排序并合并;是一个稳定的排序算法;通过比较 log2^n 次处理;时间复杂度:O(n*log2^n);额外空间:O(n);代码list1 = [20, 45, 51, 88, 99999]list2 = [98, 10, 23, 15, 99999]list3 = []def merge_sort(): global list1 global list2 global list3 select_

2022-02-14 09:47:21 1517

原创 Python数据结构——希尔排序

希尔排序稳定算法时间复杂度 O(n^3/2)空间复杂度 O(1)代码# 希尔排序时间复杂度 O(n^2)# 空间复杂度O(1)# 稳定排序def Shell(arr, size): cut = size//2 while cut > 0: for i in range(cut,size): tmp = arr[i] no = i - cut while no>=0 an

2022-02-12 10:41:13 575

原创 Python数据结构——直接插入排序

直接插入排序时间复杂度 最好O(n) 最坏O(n^2)空间复杂度 O(1)简单排序排序次数 n*(n-1)/2代码# 直接插入排序 Insert_Sort# 时间复杂度: 最好 O(n) 最坏 O(n^2)# 空间复杂度: O(1)# 算法不稳定# 比较次数: n*(n-1)/2def Insert_Sort(arr): for i in range(1, len(arr)): tmp = arr[i] no

2022-02-12 10:20:36 549

原创 Python数据结构———排序规则

排序规则排序:将数据通过某种手段或规则转为递增或递减形式;数据操作:直接移动和逻辑移动;直接移动:数据存放的位置交换;逻辑移动:仅交换指向数据存储地址的指针;排序分类: 简单排序:冒泡排序(稳定)、希尔排序(稳定)、插入排序(稳定)、选择排序(不稳定) 复杂排序:归并排序(不稳定)、快速排序(不稳定)、基数排序(稳定)、堆积排序(不稳定)冒泡排序时间复杂度:O (n^2);空间复杂度:O(1);平均移动:n*(n-1)/2;最好情况:n-1比较、O(n) 时间复

2022-02-11 11:44:49 1285

原创 Python数据结构——图的领结链表法

领结链表法时间复杂度n(n+e)缺点:增加和删除比较复杂;代码class Node: def __init__(self, value): self.value = value self.next = Nonedef Create_List(graph_list, list_size): head_list = [Node] * list_size for i in range(1, len(head_list)):

2022-02-08 13:47:08 561

原创 Python数据结构——图形结构

Python数据结构——图形结构图:一种多对多的非线形数据结构;图的应用:网络规划,地图规划;图的遍历:广度优先 (BFS) 、深度优先 (DFS);图的类别:无向图 (GRAPH) 、有向图 (DIGRAPH);有向图:有向完全图,边长 n*(n-1) 个边;强连通分支:最大的相互连通分支;包含初度和入度;<1,2>无向图:无向图,边长 n*(n-1)/2 个边;连通分支:最大的相互连通分支;(1,2)图的存储方式:是一个对称矩阵,保存下三角或上三角矩阵即可;领结矩

2022-02-08 12:36:59 1712

原创 Python数据结构之二叉树——树的变种

Python数据结构之二叉树——树的变种二叉树:树的变种,主要节约树在存储时的空间浪费。二叉树的公式1. 总结点为 n,那么深度就是 2(n)-1。2. 深度为n,总结点为 log2(n+1)。3. 度为0的节点 n0 = n2+14. 深度在 k 时,最多有 2(k-1) 个元素。二叉树的遍历方式1. 前序遍历:根左右;2. 中序遍历:左根右;3. 后序遍历:左右跟;代码部分二叉树节点定义class Tree_Node: def __init__(self, va

2022-02-04 13:46:50 547

原创 Python数据结构之树形结构——数组存储

Python数据结构之树形结构——数组存储树:一种非线性结构,主要使用链表来存储,也可以使用数组存储。本代码使用两种数组元素数组:0,6,3,5,4,7,8,9,2由于 0 索引不存储元素,所以用0代替树数组: [0]*16代码部分基本元素定义data_array = [0, 6, 3, 5, 4, 7, 8, 9, 2]tree_array = [0] * 16创建树结构def create_tree(): for i in range(1, len(data_

2022-02-04 13:36:36 2707

原创 Python数据结构之环形队列

Python数据结构之环形队列环形队列:主要解决假溢出现象;公式: rear = front = -1添加数据 rear = (rear+1) % MAX_SIZE删除数据 front = (front+1) % MAX_SIZE判断空: rear == front判断满 : (rear+1) % MAX_SIZE = front判断数据个数: (rear - front + MAX_SIZE)%MAX_SIZE代码加入数据def enqueue(name): globa

2022-02-03 17:11:05 1064

原创 Python数据结构之队列——链表创建队列

Python数据结构之队列——链表创建队列重点:链表可以不限制的添加数据。代码初始化class Item: def __init__(self, value): self.data = value self.next = Nonefront = Nonerear = Nonedef create_queue(): global front global rear data_items = [105, 119, 163,

2022-02-03 16:05:46 1009

原创 Python数据结构之队列——使用数组实现队列

Python数据结构之队列——使用数组实现队列队列:一种受限制的线性表,ADT类型,仅支持队头删除数据和队尾添加数据。具有先进先出,后进后出的特性。适合领域:计算机模拟、CPU特性、外围设备的联机并发性质、树的广度优先搜索 (BFS)。优点:只需要对 front(队首) 和 rear(队尾) 指针来进行操作数据。缺点:数组队列容易产生假溢出现象。假溢出: rear 指针添加数据时会超过数据大小范围,导致 rear 指向其他区域。代码部分(5组)创建队列front = -1rear

2022-02-03 12:42:48 1349

原创 Python数据结构之链表栈

Python数据结构之链表栈链表栈:通过top指针来连接新的数据重点: 它的指针总是指向下一个地址,bottom不存储数据;标题代码部分初始化class Link_Stack: def __init__(self, value): self.data = value self.next = Nonedef init(bott): init_data = [5, 2, 7, 3, 2] for data in init_data

2022-02-02 13:48:39 399

原创 Python 数据结构之数组栈的建立

Python 数据结构之数组栈的建立1.栈:一种限制性的线性顺序结构,通过栈顶(top)实现增删。2.栈的5种基本操作:初始化、压栈、出栈、判断空、判断满初始化Stack_Size = 10top = -1bottom = -1arr_stack = [] * Stack_Size压栈def push(value): global top if top <= Stack_Size - 1: arr_stack.append(value)

2022-02-02 13:10:06 495

原创 python数据结构之双向链表

python数据结构之双向链表双向链表可以是循环的也可以是不循环的;主要有left前驱指针,right后驱指针;代码部分结点类的创建class Node: def __init__(self, value): self.data = value self.prior = None self.after = None初始化链表def init_list(head_ptr: Node): data_arr = [10,

2022-01-30 16:57:53 921

原创 Python数据结构之循环链表

python数据结构之循环单链表的增删改查

2022-01-30 14:57:42 1712

原创 python 链表的增删改查

class Node: # 创建但个结点的对象 def __init__(self, val): self.data = val self.next = Nonedef init_list(head_ptr): # 初始化链表操作 head_ptr.next = None ptr = head_ptr init_data = [82, 76, 83, 53, 74] for data in init_data:

2022-01-29 23:05:12 735

原创 C语言数据结构直接插入排序

C语言数据结构直接插入排序算法效率:平均时间复杂度: O(n^2);#include <stdio.h>void Straight_Sort(int *arr,int size){ int j; for(int i=2;i<size;i++) { arr[0] = arr[i]; j = i-1; while(arr[0]<arr[j]) { arr[j+1] =

2022-01-24 12:52:39 252

原创 C语言数据结构__查找__折半查找法(二分查找法)

C语言数据结构__查找__折半查找法(二分查找法)一、通过建立search函数来访问和查找数据 1、low,high指针分别指向队头和队尾; 2、定义flag来保存 flag = (low+high)/ 2位置; 3、通过比较 数组中flag为止元素value_one 和 需要查找的 find_value; 如果是大于 high = flag-1; 如果是小于 low = flag+1; 如果是等于 返回 flag 保存的位置; 4、若果 l

2022-01-23 14:54:24 344

原创 【无标题】

c语言链表的创建———头插入法建立表此方法的好处在于可以倒序插入数据#include <stdlib.h>#include <stdio.h>typedef struct node{ int data; struct node *next;}L_node,*head_ptr;L_node *create(void){ head_ptr head = (L_node*) malloc(sizeof(L_node)); head -&g

2022-01-16 22:20:46 282

原创 C语言数据结构

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-01-13 21:10:20 147

原创 使用scrapy框架爬取携程旅行数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据..

2021-02-19 20:38:20 2531

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除