- 博客(97)
- 资源 (1)
- 收藏
- 关注
转载 VS中的多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)的区别
VS中的多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)的区别
2022-11-24 11:13:21
2033
1
原创 C语言读取文本文件到字符数组中,和源文件文本长度不一致
我想把本地文本文件通过C语言读取到unsigned char缓存数组中,供其他函数调用。我采用fopen函数只读文件,fseek函数找到文本结尾,ftell函数获取整个文本的长度,rewind函数回滚指针到文本开头,fread函数读取文件到缓存数组。但是缓存数组的内容却和文本文件的内容不一致。...............
2022-06-13 13:17:08
1201
原创 pyinstaller打包的exe太大而且运行太慢--简单的解决办法
pyinstaller 打包的exe总是太大而且打包好的exe运行起来速度超级慢。那是因为,你的默认环境里装了很多你不需要的包。在你当前的环境下,pyinstaller会把你安装的所有库都统一打包进去,造成打包好的exe很大,运行期来很慢。解决办法:要用纯净的python来打包即可避免加入不必要的包,那么如何快速地建立纯净的python环境呢?当然不用重装python,只需要通过pipenv建立虚拟环境即可。在虚拟环境下打包,最终的exe文件会非常小。建立一个python的虚拟环境python
2022-04-26 14:35:22
22860
9
原创 python判定固定时长固定频率的音频是否连续
我有一段时长大约为3.34 s 频率为1khz 的连续音频。该音频输入一个设备,经转换输出后,我想判断该音频是否还连续。好了,这就是我的需求,看起来比较棘手,但我们稍稍了解音频采样率,码流,音频格式,通道的相关概念后,我们就可以用强大的python很快解决此问题。关于音频的相关概念,请参考以下文章:音频(一):时域图、 频谱图 Spectrum、 功率谱https://blog.youkuaiyun.com/chumingqian/article/details/122947421正弦形函数https://
2022-04-25 13:25:22
3880
原创 插入排序-对半插入排序
#include<stdio.h>#include<stdlib.h>#include <string.h>#define MAXSIZE 100typedef int T;typedef struct list { int size; T elements[MAXSIZE];}List;void HalfInsertSort(List * lst, int length){ int i, j = 0, temp, low, high, mid;
2022-01-23 12:02:21
265
原创 基数排序(最低位优先法)-对于十进制基数则为10(局限性-对于具有固定位数的键值排序)
基数排序针对具有固定位数的序列十分有效。比如以下序列:T array[10] = {165,993,278,756,643,853,697,503,972,229};它的具体排序规则就是最低位优先法。你不需要具体了解该算法背后的理论,其实理论真的很晦涩。它的思想就是分配排序。基数排序是利用一种最低位优先法的单关键值排序方法,这里的"位"就是单关键字中的一个分量。比如以上未排序序列:T array[10] = {165,993,278,756,643,853,697,503,972,229};
2022-01-22 21:49:52
1254
原创 选择排序-堆排序-最小堆(优先权队列)
#include<stdio.h>#include<stdlib.h>#define MaxSize 101#define T inttypedef struct minheap { int Size; T Elements[MaxSize];}MinHeap;typedef MinHeap PQueue;//向下调整,针对位于上层的数值大的元素,按照完全二叉树下沉void AdjustDown(T heap[], int r, int n);//构建堆voi
2022-01-19 20:30:11
126
原创 合并排序-链表形式-递归算法
#include<stdio.h>#include<stdlib.h>typedef int T;typedef struct node { T element; struct node* Link;}Node;typedef struct list { Node* First;}List;Node* NewNode(T x) { Node* n = (Node*)malloc(sizeof(Node)); n->element = x; n-...
2022-01-18 22:18:37
310
3
原创 合并排序-顺序表-两路合并排序迭代算法
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef int T;typedef struct list { int size; T elements[MAXSIZE];}List;void Merge(List* lst, T temp[], int i1, int j1, int i2, int j2, int* k) { int _i1 = i1; int _i2 = i2; whi..
2022-01-16 12:03:51
510
原创 交换排序-快速排序的非递归算法
//stack.h#ifndef __STACK_H__#define __STACK_H__#include<stdio.h>#define MaxSize 500#define FALSE 0#define TRUE 1typedef struct stack { int top, maxstack; int element[MaxSize];}Stack;void CreateStack(Stack* s, int m){ s->top = -1; s.
2022-01-16 10:47:51
105
原创 交换排序-快速排序
#include<stdio.h>#include<stdlib.h>#include <string.h>#define Swap(x,y, t) ((t)=(x), (x)=(y), (y)=(t))#define MAXSIZE 100typedef int T;typedef struct list { int size; T elements[MAXSIZE];}List;int Paitition(List* lst, int left,
2022-01-15 22:53:58
78
原创 交换排序-冒泡排序-常规版与改进版
#include<stdio.h>#include<stdlib.h>#include <string.h>#define Swap(x,y, t) ((t)=(x), (x)=(y), (y)=(t))#define MAXSIZE 100typedef int T;typedef struct list { int size; T elements[MAXSIZE];}List;void BubbleSort(List* lst) { int
2022-01-15 22:43:30
71
原创 直接擦插入排序-希尔排序
#include<stdio.h>#include<stdlib.h>#include <string.h>#define MAXSIZE 100typedef int T;typedef struct list { int size; T elements[MAXSIZE];}List;void InsSort(List* lst, int h, int offset) { int i, j; T x; for ( i = offset+h ; i
2022-01-15 16:13:54
178
原创 直接插入排序-链表形式与顺序表形式
//链表形式的直接插入排序#include<stdio.h>#include<stdlib.h>typedef int T;typedef struct node { T element; struct node* Link;}Node;typedef struct list { Node* First;}List;Node* NewNode(T x) { Node* n = (Node*)malloc(sizeof(Node)); n->elemen
2022-01-13 23:18:57
255
原创 邻接表有向图是否包含回路
//我在这里其实是找不到有几条回路的,这个函数只能判断图里面有没有回路。下面的那个找出几条回路的是不完善的。如果你能完善这些功能,请在评论区给出你的答案,谢谢#include<stdio.h>#include<stdlib.h>//int target=0; //相当于一把枪,这把枪射出去一颗子弹,这颗子弹在如果在中途射中了这把枪,就说明图中存在一条回路,那么count回路计数器就加一//int count = 0; //指示图中有多少个回路 typedef struct
2022-01-09 17:13:29
833
原创 最短路径-弗洛伊德算法-所有顶点之间的最短路径
#include<stdio.h>#include<stdlib.h>#define BOOL int#define TRUE 1#define FALSE 0最小生成树问题的概念—普里姆算法是从点的角度来解决。若在解决问题过程中需要遍历图的所有点,则普里姆算法更好。基本思想:普里姆算法更像构建一棵树。联想我们构建二叉树的过程,从根节点出发,构建左右子树,再以左右子树为根节点,构建它们的左右子树。普里姆算法设一个点集V,初始时只有源
2022-01-05 21:30:57
507
原创 图的存贮结构_邻接链表表示法
#include<stdio.h>#include<stdlib.h>typedef struct enode { int AdjVex; int W; struct enode* NextArc;}ENode;typedef struct graph { int Vertices; ENode** A;}Graph;void CreateGraph(Graph *g, int n){ int i; g->Vertices = n; g->A
2022-01-01 23:27:31
209
原创 图的存贮结构----邻接矩阵表示法
#include<stdio.h>#include<stdlib.h>typedef struct graph { int NoEdge; int Vertices; int** A;}Graph;void CreateGraph(Graph *g, int n , int noedge) { int i, j; g->NoEdge = noedge; g->Vertices = n; g->A = (int**)malloc(n*sizeof
2022-01-01 21:49:08
309
原创 散列表-拉链法-
#include<stdio.h>#include<stdlib.h>#define M 11typedef struct node { int pos; struct node* link; struct hashnode* branch;}HashTableNode;typedef struct hashnode { int key; struct hashnode* next;}HashNode;HashTableNode* NewHSTNode(i
2022-01-01 09:47:16
743
原创 散列表-开地址法-双散列法
#include<stdio.h>#include<stdlib.h>#define NewArray(k) (HashNode*)malloc((k)*sizeof(HashNode))#define TRUE 1#define FALSE 0#define NeverUsed -1enum ResultCode { UnderFlow, OverFlow, Success, Duplicate, NotPresent };typedef struct has
2021-12-30 22:57:03
225
原创 散列表-开地址法-二次探查法
#include<stdio.h>#include<stdlib.h>#define NewArray(k) (HashNode*)malloc((k)*sizeof(HashNode))#define TRUE 1#define FALSE 0#define NeverUsed -1enum ResultCode { UnderFlow, OverFlow, Success, Duplicate, NotPresent };typedef struct has
2021-12-30 22:13:28
227
原创 散列表-开地址法-伪随机探查法
#include<stdio.h>#include<stdlib.h>#define NewArray(k) (HashNode*)malloc((k)*sizeof(HashNode))#define TRUE 1#define FALSE 0#define NeverUsed -1#define GrowUpValue 7enum ResultCode { UnderFlow, OverFlow, Success, Duplicate, NotPresent
2021-12-30 21:48:06
459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人