- 博客(5)
- 收藏
- 关注
原创 两个长度分别为m和n的有序数组合并成一个有序数组为什么最多要比较m+n-1次
两个长度分别为m和n的有序数组合并成一个有序数组为什么最多要比较m+n-1次
2022-07-30 22:01:49
2095
原创 KMP算法
引入BF算法:这是最容易想到的算法:模式串和主串从第一个开始分别比较,如果遇到不相同的,在主串比较的起点变成上一次比较的起点的下一个,模式串的比较起点从头开始,类似于下图:于是我们就想啊,每次都扫描这么多,但是确因为有一个是错的而需要从头开始努力,之前的努力都白费了吗?我们要吸取之前失败的经验,进行下一次的努力,失败是成功之母嘛,因而我们开始学习一个新的算法KMP算法。KMP算法KMP 算法是 D.E.Knuth、J,H,Morris 和 V.R.Pratt 三位共同提出的,称之为 Knuth-M
2020-12-27 17:56:19
165
2
原创 堆排序算法(加详细注释版)
C语言堆排序代码在这里笔者只是对堆排序代码假如更加详细的注释,以便于学会原理但是看不懂或者不会自己编译代码的初学者进行学习。本篇的代码来源来自大佬紫红的紫红的一篇文章:排序算法之堆排序(Heap Sort)——C语言实现还不懂算法的请先看一下这篇文章。编译环境是:VS2015#include<stdio.h>#include<stdlib.h>//大顶堆,a[1]为最大值void HeapAdjust(int a[], int s, int m)//a为存储数据的数组
2020-12-25 18:30:32
139
原创 《数据结构C语言版》第二章线性表知识点
顺序表的操作这一部分比较简单,相信只要系统学过C语言的大佬应该很容易理解,直接上代码吧以英语字母线性表为例:char V[30];void build(char* v[]) /*字母线性表生成*/{ int i; V[0]='a'; for( i=1; i<=n-1; i++ ) V[i]=V[i-1]+1; }void display( char* v[]) /*字母线性表的显示*/{ int i; for( i=0; i<=n-1
2020-12-21 00:09:03
407
原创 插入排序C语言版(一位小白的学习感悟)
插入排序基本思想:大部分人对于插入排序的思想在于“***每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。***”个人觉得,这个思想比较易于初学者理解整个算法的思想,但是经过阅读一些大佬的代码,发现代码还可以有另一种理解方式。其方式和原来的叙述方法实质是一样的,但可能更易于理解代码。先上代码void Insert_sort(int *arr,int len) // arr为数组名,len为数组长度{ int tmp,i,j;
2020-12-20 20:20:57
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人