- 博客(11)
- 收藏
- 关注
原创 大话数据结构-9.排序(上)
核心思想:比较和移动基本概念假设含有n个记录的序列为r1r2......rn,其相应的关键字分别为k1k2......kn,需确定 1,2,…,n的一种排列p1p2......pn,使其相应的关键字满足kp1⩽kp2⩽......⩽kpn(非递减或非递增)关系,即使得序列成为一个按关键字有序的序列rp1rp2......rpn这样的操作就称为排序。假设k。
2023-12-30 20:21:35 970
原创 大话数据结构-8.查找(下)
存储位置 = f(关键字),即关键字与存储位置为1V1关系。散列技术最适合的求解问题是查找与给定值相等的记录。冲突:key值不同,但f(key)相同。
2023-12-19 12:54:22 807
原创 大话数据结构-8.查找(上)
二叉排序树的形状,因数组中元素顺序不同而不同;形状不同的二叉排序树,时间复杂度也不一致,如图:平衡二叉排序树复杂度为 O[ logn],斜树复杂度为 O[n]
2023-12-19 11:20:04 794
原创 大话数据结构-7.图(下)
假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合。算法从Uu0u0∈VUu0u0∈V,TE={ }开始。重复执行下述操作:在所有u∈UV∈V−Uu∈UV∈V−U的边uv∈Euv∈E中找到一条代价最小的边u0v0(u_0,v_0)u0v0并入集合TE,同时v0v_0v0并入U,直到U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。
2023-11-24 08:38:42 896 1
原创 大话数据结构-7.图(中)
对于,邻接表关注的重点是顶点,如果用来操作边,比较麻烦,例如删除某条边需要删除两个边表结点,如图:因此仿照十字链表,改造边表结构定义了邻接多重表,结构如下:ivex和jvex是与某条边依附的两个顶点在定点表中的下标。ilink指向依附顶点ivex的下一条边。jlink指向依附顶点jvex的下一条边。①先画顶点和边;②用顶点的firstedge指向第一条边;③用ilink或jlink指向下一条边;
2023-11-24 08:28:10 850 1
原创 大话数据结构-7.图(上)
tailvex:指弧起点在顶点表的下标;headvex:指弧终点在定点表的下标;图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示。无向图的边数组是一个对角线值均为0 的对称矩阵。有向图的边数组对角线均为0,但因区分出度和入度,不是对称矩阵。headlink:入边表指针域,指向终点相同的下一条边;taillink:边表指针域,指向起点相同的下一条边。设图G是网图,有n个顶点,则邻接矩阵是一个。表示一个不可能的极限值,代表不存在。有向图(建立逆邻接表,获取入边信息)
2023-11-07 10:04:13 61
原创 大话数据结构-6.树
二叉树(Binary Tree)是 n (n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的右子树和左子树的二叉树组成。(递归)
2023-11-02 12:42:25 73 1
原创 编程导航算法通关村第1关--链表--青铜挑战笔记
规范定义__init__方法用于初始化对象,getData和setData方法用于获取和设置data属性,get_next和set_next方法用于获取和设置next属性LeetCode算法题中常用定义方式这里的val就是当前结点的值,next指向下一个结点。因为两个变量都是public的,创建对象后能直接使用和来操作,虽然违背了面向对象的设计要求,但是上面的代码更为精简,因此在算法题目中应用广泛。两种定义优劣势比较。
2023-10-19 09:50:23 142 1
原创 第1章 程序之道
问题求解意识:发现问题、创造性地思考解决方案、清洗准确地表达解决方案 一、内容 1、程序:完成输入、输出、数学、条件执行、重复 等指令 2、运行python: ①Python Web运行:PYthonAnywhere ②Python解释器(interpreter) 3、第一个程序:print函数 4、算数操作符: ①6**2 #指数运算符 ②6^2 #二进制按位运算XOR 5...
2019-09-10 12:35:58 137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人